靶场地址 https://download.vulnhub.com/xxe/XXE.zip

VM启动之后就是一个shell登陆界面,这里靶场没给账号密码,也不知道地址,这里用同NAT的虚拟机寻找一下IP地址存活

这里 .140是本机 .148就是我们要的XXE主机 同时发现了80端口 访问一下 发现一个 Apache2 初始界面 扫一下目录发现一个 /robots.txt 找到目录 /xxe /xxe/admin.php

在/xxe中登陆测试发现 数据是通过XML来传输的

直接上文件读取,发现可以读取

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE root [
  <!ENTITY xxe SYSTEM "file:///etc/passwd">
]>
<root>
    <name>&xxe;</name>
    <password>admin</password>
</root>

apache首页文件默认路径时/var/www/html/
读取一下默认目录file:///var/www/html/xxe/index.php 这里失败了,用以下伪协议来访问 参考 PHP伪协议
php://filter/read=convert.base64-encode/resource=admin.php

base64解码一下发现,密码用md5解密为admin@123 看看/flagmeout.php内容 JQZFMMCZPE4HKWTNPBUFU6JVO5QUQQJ5 先用base32再用base64 解密为 /etc/.flag.php 读取一下内容 看不懂,放到本地运行一下,注意需要PHP7.3失败了 5.4可以出现flag Over!