安恒2019.6web writeup

0x01.localview
在这里插入图片描述
f12得到提示,联想到这次华东北国赛的第一道题目猜测图片是否会涉及隐写的内容,操作一通之后发现真的可能是多想了…老老实实扫了一波后台,除了index.php之外还有flag.php存在,访问后得到提示需要伪造本地登陆。测试了添加X-Forwarded-For,Client-Ip和Host为127.0.0.1后均失败,最后测试同时修改,将X-Forwarded-For赋值为127.0.0.1,Host赋值为localhost后成功读取出flag,很迷…
0x02.easypentest
题目给出的框架十分明了,一个利用curl实现的ssrf,本来可以直接访问127.0.0.1/flag.php或者利用file协议构造file:///var/www/html/flag.php对flag.php中的内容进行读取,但题目在最开始的时候做出了限制,我们传入的x当中不得存在php

$pos = strpos($x,"php");
if($pos){
        exit("denied");
}

我们都知道strpos函数会返回匹配到字符串的第一个位置,很经典的对于strpos绕过的方式是利用传入数组使其返回null进行绕过,在本题中对其进行测试并不能实现…
查看了官方的wp给出的网页

https://bugs.php.net/bug.php?id=76671&edit=1
在这里插入图片描述

对该种检测的绕过方式为采用部分的url二次编码。绕过后得到了提示/etc/hosts,继续利用file协议对该文件夹内容进行读取,payload:?x=file:///etc/hosts,得到了一个内网ip:172.20.0.3,探测内网存活的主机,payload:?x=http://172.20.0.x/,其中x的取值为0-255,可以使用bp的爆破功能实现,扫描出172.20.0.2存在任意文件包含的漏洞
在这里插入图片描述
接着扫描该主机所开启的端口服务payload:?x=http://172.20.0.2:x/,其中x为常用的端口,同理也可以使用bp的爆破功能实现。得到25端口开放,查看25端口对应的功能
在这里插入图片描述
官方给出的wp中思路是通过gopher协议攻击SMPT协议,首先了解一下什么是gopher协议
Gopher是Internet上一个非常有名的信息查找系统,它将Internet上的文件组织成某种索引,很方便地将用户从Internet的一处带到另一处。我们可以利用gopher协议伪造POST和GET,还可以利用Gopherus-master利用gopherus协议进行攻击
在这里插入图片描述
官方的思路是利用gopher协议污染内网服务器的日志进行flag的读取,payload:
python gopherus.py --exploit smtp
在这里插入图片描述
关键就在于我们写入的文件内容包含了最基础的一句话木马,我们通过url二次编码传入生成的gopher link实现对目录的污染。
在这里插入图片描述
之后我们就可以利用传入的一句话木马实现任意命令执行了,最终得到flag的payload为:?x=http://172.18.0.2/?a=/var/log/mail.log&c=cat /Th7s_ls_Flag

发布了46 篇原创文章 · 获赞 17 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/stepone4ward/article/details/95098110
今日推荐