XXE
XXE 是 XML 外部实体注入。问题出在 XML 解析器允许文档引用外部实体,导致服务器读取本地文件、访问内网地址或造成资源消耗。
出现场景
虽然现代接口更多使用 JSON,但 XML 仍常见于老系统、支付回调、SOAP、SAML、Office 文档、SVG、RSS、配置导入和某些企业集成接口。
| 风险 | 说明 |
|---|---|
| 文件读取 | 解析器读取服务器本地文件 |
| SSRF | 解析器向内部或外部地址发起请求 |
| 拒绝服务 | 特殊实体膨胀导致资源耗尽 |
| 信息泄露 | 报错中带出路径、实体内容或网络结果 |
识别思路
如果接口接收 XML、SVG、Office 文档或带有 XML 结构的上传文件,就要关注解析器配置。错误信息中出现 DTD、entity、DOCTYPE、SAX、DOM 等字样时,也说明 XML 解析链路值得检查。
防护要点
关闭外部实体和 DTD 解析,升级安全的 XML 解析库。对上传文档和 SVG 做类型、大小、结构限制,解析过程放在隔离环境中,并避免把底层解析错误直接返回给用户。