- 博客(33)
- 收藏
- 关注
原创 SSH隧道技术及端口映射与转发
拓扑图假定攻击机已拿下web服务器且无法访问数据库服务器,以下未说明的ssh命令均在web服务器上完成ssh正向连接ssh -CNfL 0.0.0.0:5555:10.10.10.124:80 web@127.0.0.1正向代理完成后,可以在攻击机访问192.168.1.100:5555即可获取到10.10.10.124的80端口部署的内容。ssh反向连接ssh -qTfnN -R port:host:hostport remote ipssh -qTfnN -R 2222:127.0.0
2022-03-23 16:04:27
3743
原创 VulnHub-Tr0II
一、信息收集将靶机部署好之后改成NAT模式扫描本网段发现目标ip,进一步探测ip通过进一步的探测发现目标开启了21、22、80三个端口先去80端口看一眼web服务一张图没其它内容,扫一下目录看看挨个访问也没有啥特殊的地方,考虑一下另外两个端口,22端口的ssh连接要账号密码就先放着,优先考虑下21端口的ftp匿名访问发现了一个pcap文件,用wireshark分析一下在第一个FTP-DATA的数据包中发现了一个txt文件,接着往下看在第二个FTP-DATA数据包中发现了txt
2022-03-09 21:00:29
4935
原创 ATT&CK实践(内网部分)
CS上线在尝试了上传msf生成的exe后门程序版本与系统不兼容无果之后,我选择了直接使用CS生成powershell上线机子直接Launch生成powershell等待一会就上线了内网信息收集使用net view查看一下域内的计算机列表域:god.org域内有三个用户:Administrator、ligang、liukaifeng01域内三台主机:ROOT-TVI862UBEH、STU1、OWA域控:OWAnet config Workstation (当前计算机名,全名,用户
2022-03-04 00:10:15
565
原创 ATT&CK实践(外网部分)
最近忙着期末复习,先打了外网部分(要学的东西还很多),内网后面边学边玩.一.环境部署1.攻击机ip2.win7靶机ip3.win2003靶机ip4.win2008靶机ip5.win7与win10攻击机及两台内网主机的连通性这里我win10攻击机由于防火墙没关所以ping不通,应该是只需要攻击机单向ping通win7主机就行6.win2003与win7及win2008的连通性7.win2008与win2003及win7的连通性8.打开win7的phpstudy二.信息收
2021-12-16 23:09:35
761
7
原创 VulnHub-Lampiao-学习记录
又是一个周末,很长时间没更新了,摸下靶机记录一下1.信息收集开启nmap扫描一下获取目标IP接着扫目标IP发现开启了三个端口22,80,1898尝试对22端口进行ssh弱口令爆破无果,再访问80端口看看一个静态页面,通过各种工具扫描之后也是没有头绪,还剩一个1898端口除了一个登录框还要俩页面天真的我对登录框尝试了弱口令,无果之后陷入了僵局,直到发现url栏里这俩页面一个node/1,一个node/3说明应该还存在一个2,修改成2访问看看看到了点有用的信息,逐个访问看看额
2021-11-06 15:18:04
181
原创 VulnHub-GoldenEye-学习记录
前言:最近有点迷茫后面的路不知道该怎么继续往下走,再团队师傅的指点下我开始对vulnhub的靶场进行学习,比较好的一点是靶机是从外网到内网的一整个过程,可以系统性的进行学习关于靶机的教程网上已经有很多师傅写了,第一次打这种靶机也是参照了师傅们的方法,希望后面能养出自己的思路首先把靶机从官网down下来,安装完靶机之后开始复现1.nmap扫描靶机是NAT桥接,共享的本机ip,使用nmap扫描本网段基础的nmap指令百度一搜就有,这里就不放了这里发现了目标ip:192.168.149.130开始
2021-10-17 22:58:58
331
原创 portswigger靶场SQL注入实验(下)
实验9点击了home之后页面给了回显,猜测后面进行盲注的时候要利用此回显来判断,打开bp吧注入点在trackingid这,简单判断一下存在注入,下面判断一下是否存在表users,表里是否存在名为administrator的用户以及密码password有多少字符为真,存在users表,接着查用户后面判断password的长度大于1为真,扩大点看看大于30无回显,长度应该是小于30的,具体多少跑一下payload吧选择number范围1-30到20,在确定了密码的长度之
2021-10-03 18:19:20
2482
原创 假期水题~
1成功上传拿到上传地址,尝试修改后缀名没有阻拦的绕了过去,直接上蚁剑吧翻了一圈没找到flag,找到了数据库数据连接看看不断点击数据库发现了藏着flag的地方点击之后没有直接出现flag,而是要执行SQL语句将flag读取出来2莫不是签到题,直接传php文件吧上传之后没有返回路径,看来没有简单到爆炸,一直再找原因,我的bp也没啥变化没头绪了我去看了一眼wp发现,正常来说传一句话上去会过滤掉<?和php,不知道为啥我这bp没反应找到了一个伪装成js的一句话绕过
2021-10-02 16:57:05
2069
2
原创 EDU信息搜集
信息搜集的广度决定攻击的广度,知识面的广度决定攻击的深度Edusrc的资产收集我大致为两大类,第一类是教育网下的资产,第二类是非教育网类资产(包括归属存疑的企业,IP非教育网段但有明显学校特征的,属于学校的资产)PS:此收集不包括内网收集,edu毕竟没有授权,有的学校惹不起确实会出警,大家最好别去内网,内网大多数东西比较敏感谨慎触碰。那么与各位师傅分享一下我的收集步骤:1.首先是目标学校的确定,确定一个学校作为你的目标我们首先进入学校的官网,找到他的域名和IPPS:这里推荐站长工具直接查,省
2021-09-12 23:12:23
3416
原创 portswigger靶场SQL注入实验(上)
最近发现一个挺不错的靶场,burpsuite的官方网站在线训练平台不多说先到第一个系列的实验去一探究竟麻了,英文界面属实不太友好!所以我决定用谷歌看题,火狐去操作(主要火狐用习惯了)第一个系列的实验为SQL注入,先来简单了解一下吧。什么是SQL注入?SQL 注入是一种 Web 安全漏洞,允许攻击者干扰应用程序对其数据库进行的查询。它通常允许攻击者查看他们通常无法检索的数据。这可能包括属于其他用户的数据,或应用程序本身能够访问的任何其他数据。在许多情况下,攻击者可以修改或删除这些数据,从而导
2021-09-09 21:30:31
3180
8
原创 Dom Based XSS
DOM型XSS =>通过JS处理后才产生的XSSDOM—based XSS漏洞是基于文档对象模型Document Object Model,DOM)的一种漏洞DOM是一个与平台、编程语言无关的接口,它允许程序或脚本动态地访问和更新文档内容、结构和样式.处理后的结果能够成为显示页面的一部分。DOM中有很多对象,其中一些是用户可以操纵的,如uRl,location,refelTer等。客户端的脚本程序可以通过DOM动态地检查和修改页面内容,它不依赖于提交数据到服务器端,而从客户端获得DOM中的数
2021-05-27 00:11:19
739
原创 存储型XSS
持久型/存储型XSS:嵌入到web页面的恶意HTML会被存储到应用服务器端,简而言之就是会被存储到数据库,等用户在打开页面时,会继续执行恶意代码,能够持续的攻击用户;前面的文章讲到了XSS,但是不清楚弹窗有什么用,在此强调下,弹窗只是证明那个地方存在xss,就和SQL注入单引号报错或者and 1=1;and 1=2一样xss =>跨站脚本攻击=>前端代码注入=>用户输入的数据会被当做前端代码执行。存储型:用户输入的数据会被存入数据库,然后页面输出时会被当做前端代码执行。如果用户输入
2021-05-25 23:46:15
6547
原创 javascript学习笔记(七)
方法函数也可以成为对象的属性,如果一个函数作为一个对象的属性保存那么我们称这个函数时这个对象的方法调用函数就说调用这个对象的方法(method)这里sayname就是obj的方法,调用sayname的时候我们就说调用obj的sayname方法这里是调函数调函数和调方法这里只是名称上的区分,没有本质的差别枚举对象中的属性,使用for…in语句语法:for(var 变量 in 对象){}for…in语句对象中有几个属性,循环体就会执行几次每次执行时,会将对象中的一个属性的名字赋值给变量
2021-05-23 15:59:09
587
原创 XSS的原理分析与解剖
什么是XSS?XSS可以理解为前端代码注入(前端代码包括HTML,CSS,JavaScript)注入攻击的本质,是把用户输入的数据当做代码执行。这里有两个关键条件:第一个是用户能够控制输入第二个是原本程序要执行的代码,拼接了用户输入的数据那么XSS主要拼接的是什么?SQL注入拼接的是操作数据库的SQL语句。XSS拼接的是网页的HTML代码,一般而言我们是可以拼接合适的HTML代码去执行恶意的JS语句(总结: xss就是拼接恶意的HTML)XSS能做什么?盗取Cookie(用的最频繁的)
2021-05-22 23:10:29
398
原创 Oracle注入
显错注入Oracle需要严谨的查询语法,所以引入了一个叫dual虚表的东西。例如:select 1,2,3 from dual其次它弱化了库的概念可以以一个用户一个数据库去理解它Dual是一个实表(也有人说它是虚表),如果你直接查询它,它只显示一个X,列名为DUMMY那么要它有什么用呢?它实际上是为了满足查询语句的结构而产生比如你想查询你的用户名select user from Dual调用系统函数:(获得随机值: select dbms_random.random from dual还能
2021-05-21 20:28:01
237
原创 MSSQL注入-反弹注入
MSSQL注射攻击是最为复杂的数据库攻击技术,由于该数据库功能十分强大,存储过程以及函数语句十分丰富,这些灵活的语句造就了新颖独特的攻击思路。MSSQL反弹注入明明是SQL的注射点却无法进行注射,注射工具猜解的速度异常缓慢,错误提示信息关闭,无法返回注射结果等,这些都是在注射攻击中常常遇到的问题。为了解决以上这些疑难杂症,比较好的解决方法就是使用反弹注射技术,而反弹注射技术则需要依靠opendatasource函数支持反弹注入:利用SQL语句,让目标的数据库来访问你的数据库,然后插入数据让目标机器来
2021-05-20 22:07:25
210
原创 MySQL注入-Dns_log注入
在某些无法直接利用漏洞获得回显的情况下,但是目标可以发起请求,这个时候就可以通过DNS请求把想获得的数据外带出来。对于sql盲注,常见的方法就是二分法去一个个猜,但是这样的方法麻烦不说,还很容易因为数据请求频繁导致被Ban所以可以将select到的数据发送给一个url,利用dns解析产生的记录日志来查看数据。Dns-log=>DNS域名解析协议=>将域名转化为IPlog=>日志(记录的东西)Dns的日志外带数据(oob)–>这里是一个延时盲注我让数据库去访问某个网站
2021-05-18 23:31:11
276
原创 JavaScript学习笔记(六)
属性名和属性值向对象中添加属性属性名:对象的属性名不强制要求遵守标识符的规范什么乱七八糟的名字都可以使用但是我们使用是还是尽量按照标识符的规范去做如果要使用特殊的属性名,不能采用.的方式来操作需要使用另一种方式:语法:对象[“属性名”"]=属性值读取时也需要采用这种方式使用[]这种形式去操作属性,更加的灵活,在[]中可以直接传递一个变量,这样变量值是多少就会读取那个属性。属性值JS对象的属性值,可以是任意的数据类型甚至也可以是一个对象in运算符通过该运算符可以检查
2021-05-11 22:54:42
344
原创 javascript学习笔记(五)
for循环的嵌套外层循环控制高,内层循环控制宽。这里举的是一个九九乘法表的例子。break和continuebreak关键字可以用来退出switch或循环语句注意:不能在if语句中使用break和continue这时候我们在内层循环里面写个break试试:我们发现只执行了外层循环。到了内层循环自动结束退出。这里注意break会结束最近的循环所以可以为循环语句创建一个label,来标识当前的循环label:循环语句使用break语句时,可以在break后跟着一个label。这
2021-05-10 23:02:58
89
原创 SQL注入攻击学习笔记(三)
宽字节注入魔术引号是什么?我们现在要了解一个PHP的防御函数magic_quotes_gpc(魔术引号开关)magic_quotes_gpc函数在php中的作用是判断解析用户提交的数据,如包括有: post、get、cookie过来的数据增加转义字符“\”,以确保这些数据不会引起程序,特别是数据库语句因为特殊字符引起的污染而出现致命的错误。**magic_quotes_gpc的作用:**当PHP的传参中有特殊字符就会再前面加转义字符,来做一定的过滤单引号(’)、双引号(”)、反斜线(\)与 NU
2021-05-08 18:27:11
350
原创 javascript学习笔记(四)
if语句条件判断语句:使用条件判断语句可以在执行某个语句之前进行判断,如果条件成立才会执行语句,条件不成立则语句不执行。-if语句语法一:if(条件表达式)语句if语句在执行时,会先对条件表达式进行求值判断为true时执行,false时不执行无反应if语句只能控制紧随其后的语句,想要同时控制就加个{}代码块if语句后面的代码块虽然不是必须的,但是开发中一般都会写上。if语句语法二∶if(条件表达式){语句…}else{语句…}if…else. . .语句当该
2021-05-06 21:16:10
74
原创 SQL注入攻击学习笔记(二)
POST注入POST注入与显错注入的区别就在于传参方式的不同,后者是GET传参可以显示在URL栏里GET和POST :他们其实没啥区别1、GET会显示在URL栏里面2、GET会进行一次URL编码3、POST能够传输更多的数据POST注入高危点:登录框查询框等各种和数据库有交互的框我们直接上练习题:前闭合后注释,猜字段数,查库表字段及数据老样子到4报错了,所以是3个字段。查表查到了flag,我们接着进去查字段接着查flag这个字段里的数据提交!Rank2不
2021-05-06 19:16:10
158
原创 javascript学习笔记(三)
我带着新学到的知识又来了!!逻辑运算符JS中为我们提供了三种逻辑运算符1.!非!可以用来对一个值进行非运算,非运算就是指对一个布尔值进行取反操作,true变false,false变true,如果对一个值进行两次取反,它不会变化。如果对非布尔值进行元素,则会将其转换为布尔值,然后再取反数字转布尔都是true,所以取反是false。我们现在不仅需要转成布尔值,而且要和原布尔值相同,就取两次非运算。所以我们可以利用该特点,来将一个其他的数据类型转换为布尔值可以为一个任意数据类型.
2021-04-28 20:38:01
551
2
原创 javascript学习笔记(二)
我来更新新的学习总结啦!4.NullNull(空值)类型的值只有一个那就是null,null这个值专门用来表示一个空的对象我来检测一下null值的数据类型,如下:这里我们看到null的数据类型返回的是object!注意我们用typeof来检查一个null值时,返回的不是null类型而是object!!5.Undefined类型Undefined(未定义)的值也只有一个就是undefined当我们声明一个变量,但并不给变量赋值时,它的值就是undefined注意未定义不是为声明!如果
2021-04-25 13:43:37
257
原创 SQL注入攻击学习笔记(一周一更)
什么是注入?圈重点:注入攻击的本质,是把用户输入的数据当做代码执行。这里有两个关键条件:第一个是用户能够控制输入第二个是原本程序要执行的代码,拼接了用户输入的数据然后进行执行SQL注入能干什么?1.获取管理员账号密码**(利用联合查询)**2.获取数据库中的信息原本还要记录案例的学习的,但案例的讲解和实际靶场练习差不多,我就直接上靶场的练习题了!显错注入Rank1直接进传送门:SQL语句我们是在url栏里执行的,所以我们关注一波url栏!所以?id=1是个什么东东?它是一个
2021-04-24 21:35:07
813
4
原创 Javascript学习笔记(三天一更)
JavaScript简介1995年由网景开发的一种脚本语言(解释型语言,类似C与java的语法结构,动态语言,基于原型的面向对象),前期主要用于前端验证,随着发展浏览器的动态展示已经与javascript紧密相连。后因与微软JScript竞争不利,将其开源,随后出现了Ecmascript标准。实际意义上javascript的含义要更大一些,一个完整的javascript的实现由一下三个部分组成:JS的第一行代码JS代码要写到script标签中!控制浏览器弹出一个警告框:在计算机页面中写入
2021-04-21 22:01:49
3047
19
原创 Mysql语法
Mysql语法SQL的分类:1.DDL 数据定义语言create–创建 alter–修改 drop–删除2.DML 数据操作语言insert(插入数据) update(修改数据) delete(删除数据)3.DCL 数据控制语言if else while4.DQL 数据查询语言select(查询表中的数据)数据库操作创建数据库:create database 数据库名称;删除数据库:drop database 数据库名称;
2021-04-19 23:41:51
922
2
原创 php反序列化(小白学习心得)
首先问自己一个问题为什么要进行序列化与反序列化?例如我们平时写的字符abcdef可以进行一个显示,但在网络上它是不能进行一个正常的传输的,所以序列化就是需要规定一种格式用来作用于网络的传输。abcdef+空格,加了空格你看不到,你认为这里没有字符,但实际在url栏里它就是%20;回车换行就是:%0a %0d;php的序列化php提供序列化和反序列化的函数serialize和unserialize,序列化之后的内容是简单的文本格式,但是对字母大小写和空白敏感(空格,回车,换行)序列化后字母标示
2021-04-07 12:46:01
655
原创 文件上传与文件包含漏洞
day2什么是文件上传?文件上传指用户在相应的权限下上传正常的图片或者文件内容。什么是文件上传漏洞?简单来说,文件上传漏洞指用户超过其权限,绕过限制上传了不允许上传的内容,这里上传的文件可以是木马、病毒、恶意脚本或者webshell等最常见的一个webshell就是php一句话木马:<?php @eval($_POST[1]);?>jsp:<%Runtime.getRuntime().exec(request.getParameter("cmd"));%>
2021-03-30 20:37:05
765
原创 Bugku上的web1-5入门级题目(小白上路,慢慢学习)
Web1启动环境,进入查看。发现网页里是一堆动态的笑脸,密集恐惧症患者表示麻了!看着这些笑脸一无所获,索性就F12看看…没想到的是进入源码之后直接找到了flag!Web2进入环境查看。算小学算术题呗,本以为输入正确答案验证就能拿到flag…但事实也确实如此,只不过验证框只能输入一个数字,想想应该是允许js的!点击这个可以在页面中选择元素进行查看直接审查输入框。源码位置就跳到了这里,发现应该是maxlength控制了输入的长度,我们可以选择把它删了不设置限度,也可以改限度允
2021-03-30 12:59:31
460
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人