Burp Suite 测试XXE漏洞需拦截修改XML请求注入外部实体,通过回显文件、DNS外带或报错确认DTD解析;识别入点看Content-Type和XML结构;构造payload分回显/盲注/错误触发三类;配合Collaborator验证,绕过技巧包括协议替换、参数实体嵌套和编码混淆。
Burp Suite 测试 XXE 漏洞,核心是拦截并修改 XML 类型请求,注入恶意外部实体,观察响应中是否回显文件内容、触发 DNS 请求或引发报错——关键在于确认服务端是否解析了外部 DTD 且未禁用外部实体。
先找带 XML 特征的请求:Content-Type 为 application/xml、text/xml 或 application/xhtml+xml;请求体是格式良好的 XML(如含 、);常见于 API 接口、SOAP 请求、配置上传、SAML 身份断言等场景。
注意:有些接口虽不显式声明 XML 类型,但实际接受 XML 数据(比如 POST body 是纯 XML 字符串),需手动测试。
在 Burp Proxy 或 Repeater 中拦截目标请求,将原始 XML body 替换为以下基础 XXE 测试载荷之一:
]>
&xxe;
(观察是否返回路径不存在类错误)
]>
&xxe;
(看是否有 DNS 请求到达)
]>
&xxe;
不是所有 XXE 都直接回显内容。要综合判断:
/etc/passwd 等敏感内容片段(注意编码,可能被 HTML 编码或 Base64)php://filter/read=convert.base64-encode/resource=/etc/passwd 绕过乱码
巧遇到过滤或解析失败时可尝试:
file:// → expect://(PHP)、gopher://(打内网)(evil.dtd 内定义
%xxe; ]>
&send;
)%20、HTML 实体 zuojiankuohaophpcn,或用注释包裹关键字干扰 WAF基本上就这些。XXE 测试重在“试”和“看”——别只盯回显,DNS 外带和报错信息同样关键。只要服务端解析 XML 且没禁用外部实体,基本就能打穿。