01判断SSRF是否存在
1. 访问http://www.badu.com网站。
![](http://dingyue.ws.126.net/2023/0705/218c5c16j00rxbdph001hd000v900e4p.jpg)
2. dnslog平台收到回显,存在ssrf。
![](http://dingyue.ws.126.net/2023/0705/541a1429j00rxbdq5002nd000s200dcp.jpg)
3. 尝试读取文件/etc/passwd,并返回内容,可以判断出是回显型ssrf。
![](http://dingyue.ws.126.net/2023/0705/5b3ecd51j00rxbdql003fd000v900h8p.jpg)
4. 读取/etc/hosts文件,当前机器ip是172.72.23.21。
![](http://dingyue.ws.126.net/2023/0705/4ef6c576j00rxbdrd0035d000v900j1p.jpg)
5. 尝试读取/etc/shadow 和/root/.bash_histor,发现无权限。
02探测内网存活主机服务
使用dict协议对内网主机进行存活探测。
![](http://dingyue.ws.126.net/2023/0705/5c9e85dfj00rxbdrr0038d000ic007xp.jpg)
03172.72.23.22—代码注入
1. 利用ssrf访问内网http://172.72.23.22,提示CodeExec。
![](http://dingyue.ws.126.net/2023/0705/7c8970a2j00rxbds6001yd000v900ghp.jpg)
2. 使用burp的Intruder模块对网站进行目录爆破,存在phpinfo.php和shell.php。注意:此处需要去除特殊字符编码。
![](http://dingyue.ws.126.net/2023/0705/60a3fb6ej00rxbdsq005wd000v900f9p.jpg)
3. 查看shell.php,可以直接穿参执行系统命令查看flag。
![](http://dingyue.ws.126.net/2023/0705/180b3578j00rxbdtb0034d000v900m0p.jpg)
04172.72.23.23—sql注入
访问http://172.72.23.23,提示是get型sql注入。
![](http://dingyue.ws.126.net/2023/0705/dceca7c0j00rxbdtr001ud000v900lzp.jpg)
![](http://dingyue.ws.126.net/2023/0705/498536bbj00rxbdu80063d000ic00awp.jpg)
![](http://dingyue.ws.126.net/2023/0705/6f9abcc6j00rxbdup002ud000v900bep.jpg)
05172.72.23.24—命令执行
1. 访问http://172.72.23.24,网站是一个网络测试功能接口。一般来说,这种会存在命令执行漏洞。但是系统也可能会过滤一些特殊字符,需要我们进行绕过。
![](http://dingyue.ws.126.net/2023/0705/de3d9053j00rxbdvg0014d000v900k8p.jpg)
2. 这里是post请求,需要利用gopher协议发送post请求。此处要求必须有4个参数为必要参数,用于传递Content-Type,Content-Length,host,post的参数。如果有多个参数,则参数之间的&也需要进行URL编码。
3. 将数据包进行两次url编码。
![](http://dingyue.ws.126.net/2023/0705/05e9fa0aj00rxbdvz0016d000v9008lp.jpg)
![](http://dingyue.ws.126.net/2023/0705/5a2a5523p00rxbdwc000pd000ic002hp.png)
4. 利用gopher协议发送post请求,成功执行命令。
![](http://dingyue.ws.126.net/2023/0705/5c6f577bj00rxbdx20071d000v900dcp.jpg)
![](http://dingyue.ws.126.net/2023/0705/ae44db28j00rxbdxj0023d000v900b4p.jpg)
5. 执行命令查看flag,这里提示flag在/tmp目录,但是查看后发现flag并不存在此处。
![](http://dingyue.ws.126.net/2023/0705/3f7d7347j00rxbdy4008td000v900d0p.jpg)
06172.72.23.25—xml
1. 访问http://172.72.23.24,跳转一个登录界面。
![](http://dingyue.ws.126.net/2023/0705/8a9bb957j00rxbdyp0049d000v900g1p.jpg)
2. 成功读取文件。
![](http://dingyue.ws.126.net/2023/0705/b21db114j00rxbdzd00fsd000v900fwp.jpg)
3. 此处测试命令执行,结果显示无法执行。
07172.72.23.26—Tomcat
1. 访问http://172.72.23.26:8080,地址是一个Tomcatyang li界面。构造PUT请求包,将数据包进行二次url编码。
![](http://dingyue.ws.126.net/2023/0705/8c86c0daj00rxbeh9006ad000v900kjp.jpg)
2. 使用gopher协议发送请求,响应包返回201说明写入成功。
![](http://dingyue.ws.126.net/2023/0705/23c54df4j00rxbehs00l1d000v900emp.jpg)
3. 利用ssrf,直接访问shell文件执行命令即可。
![](http://dingyue.ws.126.net/2023/0705/8e68fb21j00rxbeik001md000v900ebp.jpg)
08172.72.23.27—Redis
1. 172.72.23.27机器开放了6379端口,测试存在未授权,redis版本为5.0.5。
![](http://dingyue.ws.126.net/2023/0705/812cb4baj00rxbejg003sd000v900g7p.jpg)
2. redis的shell一般可以用写入计划任务(Centos)、写入公钥、写webshell(知道网站物理路径)。因为这台机器没有开放web服务,可以先尝试写入计划任务。
3. 使用脚本。
![](http://dingyue.ws.126.net/2023/0705/af73411cj00rxbekf00ahd000v90070p.jpg)
![](http://dingyue.ws.126.net/2023/0705/251b0751j00rxbel00038d000v900ajp.jpg)
4. 成功反弹shell。
![](http://dingyue.ws.126.net/2023/0705/ad97c53cj00rxbenp00apd000so009gp.jpg)
5. 或者手工输入。
![](http://dingyue.ws.126.net/2023/0705/2a2c2d13j00rxbeoc003bd000ic0077p.jpg)
09172.72.23.28—Redis
1. 前面通过探测服务,得知这台机器已开放80和6379端口。
2. 使用dict协议访问6379端口的服务,redis需要验证密码。如果在内网redis需要认证的情况下,我们可以使用dict或gopher协议对密码进行爆破。
![](http://dingyue.ws.126.net/2023/0705/38d2a6bfj00rxbequ0025d000v900eap.jpg)
3. 访问80端口存在文件包含,这里可以尝试读取redis的配置文件来获取密码。
![](http://dingyue.ws.126.net/2023/0705/96f1f2e3p00rxbera0016d000ic003up.png)
![](http://dingyue.ws.126.net/2023/0705/515d3df2j00rxbes10024d000v900hzp.jpg)
4. 成功读取redis的密码。
![](http://dingyue.ws.126.net/2023/0705/0839802ej00rxbess004kd000v900fap.jpg)
5. 使用dict协议进行认证,可以确定读取的密码是正确的。
![](http://dingyue.ws.126.net/2023/0705/087cd80fj00rxbeu9001td000v900djp.jpg)
6. 使用Gopherus生成payload。
![](http://dingyue.ws.126.net/2023/0705/c9ab53aaj00rxbev4009gd000v9006hp.jpg)
![](http://dingyue.ws.126.net/2023/0705/bb3aa22dj00rxbevs005hd000ic0075p.jpg)
7. 将gopher://127.0.0.1:6379/_后面的payload进行url解码后,在上方添加验证密码并增加换行,然后进行两次url编码。
![](http://dingyue.ws.126.net/2023/0705/0205b24aj00rxbewr00a3d000v900q6p.jpg)
8. 发送数据包。
![](http://dingyue.ws.126.net/2023/0705/94e25632j00rxbexf00ahd000v900ghp.jpg)
9.访问http://172.72.23.28/shell.php,成功执行命令。
![](http://dingyue.ws.126.net/2023/0705/70332fa4j00rxbeyf002qd000v900f3p.jpg)
10. 此外,大家也可以写入计划任务,方法和写shell一样——利用gophers生成脚本,进行url解码,并添加auth后,再进行两次url编码即可。
热门跟贴