使用御剑目录扫描工具测试一下,发现有robots.txt文件
访问robots.txt文件,这个文件通常放的是一个网站的目录
我们得到两个目录,试着访问一下
xxe目录下是一个登录页面,xxe/admin.php目录下也是一个登录页面
我们先在xxe页面进行登录抓包测试
得到的数据包发到重放器中进行xxe注入测试,更改用户名为2,则响应包中回显2
所以存在用户名处有回显
尝试进行xxe注入,构造xxe语句使用file协议访问一下etc/passwd文件,看看是否能访问到
<!DOCTYPE test[
<!ENTITY xxe SYSTEM "file:///etc/passwd">
]>
可以访问,那么就是可以进行xxe注入
结合之前访问robots.php文件得到的目录,我们可以访问一下admin.php文件,这需要使用php协议
<!DOCTYPE test[
<!ENTITY xxe SYSTEM "php://filter/read=convert.base64-encode/resource=admin.php">
]>
访问到后进行base64解码得到一篇php代码,在这个里面发现了用户名和密码
密码使用md5加密的,我们进行解码得到密码是admin@123
来的admin登录页面下,登录用户,看到有一句话说flag在这
点击后并有没有flag,但是我们跳转到了一个flagmeout.php文件下,那么我们可以使用xxe语句访问一下这个文件
访问后发现里面是有东西的
经过base64解码后,得到flag,但是这个是使用base32编码后的
解码得到一串base64编码的东西
再次进行base64解码得到一个.flag.php的目录,还是一个隐藏文件,我们使用xxe语句查询一下这个文件
将得到乱码经过base64解码后,是一片php语句,但是需要php环境才能解析
我们直接在我们本地的根目录下创建一个1.php文件,将php语句复制进去
要加上php语句定界符才可以
访问这个1.php文件;最终得到真正的Flag如下图: