XXE 外部实体注入攻防手册
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md 的指南,安装技能 @user_3c6cb52e/xxe-xml-external-entity-g3o6。
技能介绍
要解决的安全问题
XXE(XML External Entity Injection)利用 XML 解析器的外部实体特性,可导致任意文件读取、SSRF、数据外带甚至远程代码执行。但实际渗透测试中,通用工具往往只覆盖最基础的 XML 上传场景,一旦遇到 SOAP 服务、REST API 中的 JSON 转 XML 解析器、Office 文档(docx/xlsx/pptx)或 SVG 图片等非典型上下文就失效。更棘手的是,当实体回显被过滤、目标仅存在盲 XXE、或需要 OOB(Out-of-Band)外带数据时,很多方案直接放弃。
技能如何工作
该技能以"专家攻击手册"的形式组织,核心能力包括:
- 全上下文注入覆盖:SOAP Envelope/Body 元素注入、REST API 中 JSON 转 XML 解析器的隐式 XXE、OOXML 文档多入口点(
word/document.xml、[Content_Types].xml)、SVG 图片中的 DOCTYPE 声明。 - OOB 数据外带:直接读取失败时,通过外部 DTD 引用触发 HTTP 回调,配合可控服务器收集窃取数据。
- 盲 XXE 检测:利用错误消息泄露文件路径或内容,或通过
PUBLIC外部 DTD 引用触发 SSRF 回调。 - XXE-to-SSRF 链:将 XXE 作为跳板访问内部网络服务或云元数据接口。
- 进阶利用场景:配套的
SCENARIOS.md提供真实 CVE 链,如 Apache Solr XXE + RCE(CVE-2017-12629)、PHPexpect://协议直接命令执行、Office docx XXE 完整构造流程(解压 → 注入 DOCTYPE → 重打包 → 上传)。
适用边界与注意点
该技能面向授权安全测试设计,不适用于未授权攻击。OOB 和盲 XXE 场景通常需要外部服务器支持,实战中需提前搭建回调服务。Office 文档 XXE 依赖目标对上传文件的解析行为,需确认实际解析链路。PHP expect:// 利用要求目标环境安装 expect 扩展,并非普遍存在。
使用场景
- SOAP Web服务安全测试:注入实体到SOAP Envelope/Body元素验证XXE
- REST API审计:JSON转XML解析器隐式XXE检测
- Office文档上传测试:构造含DOCTYPE的docx验证OOXML解析链
- SVG上传场景:测试图片预览管线是否解析外部实体触发XXE
适合人员
- 渗透测试工程师:需要针对SOAP/REST/Office等多场景进行授权XXE漏洞验证
- 应用安全研究员:研究XML解析器攻击面与OOB/盲XXE数据外带技术
- 红队工程师:在授权环境内利用XXE-to-SSRF链进行内网探测与敏感信息收集
- CVE复现研究者:需要针对Apache Solr/PHP等真实组件的XXE漏洞利用链复现