完成情况
经过几天时间的测试,最终只有 @张嘴儿,@sansha_0_0,@Myhere 师傅成功拿到最终的 Flag:
特此感谢本次 @Myhere 师傅为我们提供他自己写的 WP。
靶场考点
-
dirsearch 的熟练使用 -
IIS 短文件泄露原理与漏洞利用 -
.git 泄露原理与漏洞利用 -
ThinkPHP 框架实战之日志泄露 -
对敏感信息的天赋与灵感 -
手工验证漏洞存在的情况下,坚信可以工具自动化复现
靶场细节
网站指纹信息收集
给的网站一看就是一个静态页面,没啥功能:
直接使用 dirsearch
扫描
dirsearch -u 172.10.100.107
发现第一个坑点,返回了大量无用的目录信息。
添加过滤参数 --clude-size
,再次进行扫描
dirsearch -u 172.10.100.107 --exclude-sizes 17B,16B
Note "其他 diesearch 过滤器解题思路" 使用正则排除响应:
dirsearch -u https://target --exclude-regex "Found"
READEME.txt
文件与 aspnet_client
这种 IIS 特征目录,访问 READEME.txt
确实也拿到了 IIS 相关的指纹提示:国光这里狗的很,网站服务器默认的返回头还故意将 IIS
改成了 Apache
来欺骗我们,不过他也加了个 Tips
字段提示了指纹:
殊不知,他只是 GET
请求下伪造了 Apache
,使用 OPTIONS
方法的话,就露出马脚了,一下子就可以看出是 Windows IIS
了:
IIS 短文件泄露利用
根据课件里面的提示,我们尝试来手工验证一下漏洞是否存在:
OPTIONS /a*~1*/ HTTP/1.1
虽然网站返回的状态码是 200 ,但是这里是国光故意设置的坑, 404 页面会重定向到一个 404 页面,导致状态码是 200,实际上我们这里就当做网站返回了 404 就行:
OPTIONS /sqlsec*~1*/ HTTP/1.1
网站只返回了 HTTP 200 状态码:
至此通过手工测试,判断网站确实存在 IIS 短文件泄露漏洞,那么直接开始上工具吧,先使用 lijiejie 大佬写的 IIS_shortname_Scanner 工具
Github 项目地址为:
https://github.com/lijiejie/IIS_shortname_Scanner
疑?居然说漏洞不存在:
看了下代码,原来是这个工具判断方法只是通过状态码判断的,但是国光这里使坏了,故意让 404 状态码变成 200 状态码, 导致工具根本无法扫描出:
再试试看课程里面推荐的其他工具吧,如果都不行的话,干脆我自己来使用 BP 跑字典穷举得了:
最终使用 IIS-ShortName-Scanner
https://github.com/irsdl/IIS-ShortName-Scanner
项目成功利用 IIS 短文件漏洞:
后面发现
https://github.com/bitquark/shortscan
项目也可以成功扫描,而且也挺好用的:
大脑英语单词灵感爆发,猜测一下,这个 GGREDI
开头的目录 可能是GGREDIS
,GGREDIRECT
,在浏览器中尝试一下:
http://172.10.100.107/ggredirect/
发现打开了一个类似某类不正经网站的跳转页面:
正常情况下我们无法猜出具体是某个目录的时候,可以尝试使用 BP 穷举一下 26 位字母,一般情况下我们最高可以遍历到 4 位,如果是 5 位的话,就需要大量请求了,势必耗费很长的时间。当然如果 4 位以内就没结果的话,可以考虑放弃了,越往后爆破耗费的时间越是指数级增长。这里我们使用 BP 也成功穷举出了后面几位是 rect:
等待几秒后成功跳转到:
http://0f15f919.sqlsec.com/
是一个全新的网站:
ThinkPHP 网站实战
.git 泄露利用
访问到新的网站,感觉已经成功一半了,在对这个链接进行目录扫描:
发现这次存在一堆 404 的目录,再屏蔽掉:
dirsearch -u http://0f15f919.sqlsec.com/ --exclude-sizes 17B,16B,548B
一番扫描后就发现很 amazing 啊,居然有 .git
泄露:
直接掏出工具先把文件拉下来看看,https://github.com/BugScanTeam/GitHack 居然没有成功:
但是手动访问存在 /.git/index
等特征目录的,漏洞应该是存在的,继续尝试换 lijiejie 大佬写的 GitHack
https://github.com/lijiejie/GitHack
成功利用:
下来就是考验细节的时候到了,看看里面有什么好东西:
首先发现了一个 adminx.php
后台文件,好家伙要是没有 git 泄露,这个后台文件死也扫不出来的吧,在浏览器中打开看看:
再仔细翻找一番,确定网站使用 ThinkPHP 框架搭建的了:
既然是比较新的 ThinkPHP
框架写的,可以一会可以尝试一下获取 ThinkPHP 日志,我们继续研究。
打开链接看看,发现网站默认的用户名是 [email protected]
:
有管理员账号信息和数据库账号信息,再翻找一下,好像已经没有很多线索了,接下去我们尝试一下获取一下日志,看看有没有更多信息。
ThinkPHP 日志泄露
这里我们使用 thinkphp_gui_tools
工具,如果使用过高版本的JDK可能会出现打不开的情况,可以下载一个javafx-sdk-18.0.2
然后用下面
命令执行:
java -Dfile.encoding="UTF-8" --module-path "前置路径/javafx-sdk-18.0.2/lib" --add-modules "javafx.controls,javafx.fxml,javafx.web" -jar "ThinkPHP.jar"
因为 gg 写靶场的时间肯定是6.10号左右,所以就从 6.9 号开始查询,果然发现了日志信息:
这里使用 ThinkLog
https://github.com/Lotus6/ThinkLog
也是可以正常扫描出 ThinkPHP 6 框架的日志泄露的:
接下来又是考验仔细的时候,把几个日志都下载下来依次检索,因为在前面的这个页面中,发现过默认的管理员账号 [email protected]
,我们搜索一下,果不其然,看看我们发现了什么 !!!!
感受到离真相只差一步了,密码是 b102ce1d5eebac2b6d74bda8c87c47a050c80491
,CMD5 网站居然是收费的:
去 somd5 那边查询一下,成功解密:
ok,大功告成,账号密码全部 Get!打开管理页面,输入账号密码:
登录,成功!
在个人中心的昵称中拿到 flag:
坑点总结
-
第一个 IIS 网站魔改了指纹为 Apache,需要细心信息收集 -
网站 404 状态码都是因为重定向到了 404.txt 导致状态码变成 200 需要过滤 -
网站没有 404 状态码导致一些不严谨的 IIS 短文件利用工具失效,需要多尝试几个 -
ThinkPHP 后台故意改了,必须配合 .git 泄露才可以知道是 adminx.php -
ThinkPHP 用了比较新的版本没有漏洞,需要配合日志泄露一点点细心找到密码
原文始发于微信公众号(安全小姿势):国光二期 WEB 课程之目录扫描靶场 WP
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论