网络安全专业术语
XXE
XML External Entity
XXE · 用 XML 偷走服务器上的文件
攻击/渗透应用安全
XXE
- 定义
- XXE(XML External Entity)是网络安全领域的专业术语。XXE 通过在 XML 输入中定义外部实体,诱使服务器解析时加载本地文件或发起内部网络请求。
最后更新:2026-03-18
什么是XXE?
XXE 通过在 XML 输入中定义外部实体,诱使服务器解析时加载本地文件或发起内部网络请求。虽然现代框架默认禁用外部实体,但遗留系统和配置不当仍常见此漏洞。
- 利用 XML 解析器的外部实体功能
- 可读取服务器文件或发起 SSRF
- 现代框架默认禁用但遗留系统仍有风险
XXE详解
XXE 攻击的原理是 XML 规范允许定义外部实体(如 <!ENTITY xxe SYSTEM "file:///etc/passwd">),解析器会自动加载实体内容。攻击者可借此读取服务器文件、探测内网、甚至执行拒绝服务(Billion Laughs 攻击)。防御方式是禁用 XML 外部实体解析,或使用 JSON 替代 XML。
XXE的应用场景
正式定义
利用 XML 解析器的外部实体功能读取文件或发起内部请求的注入攻击
应用场景
- XML 接口的安全测试
- 文件读取和内网探测
- OWASP Top 10 漏洞检测
常见误区
- XXE 不只能读文件,还能做 SSRF 和 DoS
- 禁用 DTD 是最彻底的防御
- 不只是 XML API,Office 文档和 SVG 也可能触发 XXE
实际案例
📌 XXE 实战
攻击者在上传的 SVG 图片中嵌入 XXE payload,服务器解析 SVG 时触发外部实体加载,读取了 /etc/passwd 文件内容。
XXE的参考来源
关于XXE的常见问题
- XXE 能做什么
- 读取服务器本地文件、SSRF 访问内网、拒绝服务(Billion Laughs 攻击),严重时可实现 RCE。
- 怎么防御 XXE
- 禁用 XML 外部实体解析、使用 JSON 替代 XML、升级 XML 解析库、输入验证。