SuperAPI AI 工具集

hunt-xxe

安全与审计

查看项目

更新于 10-15 13:48

技能介绍

用途

hunt-xxe 是一个针对 XXE(XML External Entity,XML 外部实体注入)漏洞的狩猎技能,来源于 elementalsouls/claude-bughunter 项目,基于 10 份公开漏洞赏金报告构建,覆盖 SVG 上传 XXE、Office 文档(PPTX/DOCX)XXE、SOAP XXE、SAML 等场景。其定位是帮助安全测试人员系统地发现、验证并证明 XXE 漏洞的实际影响。

主要能力

资料中描述的能力包括:

  • 高价值目标识别:列出 XML 集成密集的企业平台、具备文件读取能力的域、共享后端的子域、接受 XML 的 API 网关、文件上传功能(SVG、DOCX、XLSX、PDF、PPTX 解析器)、SAML/SSO 端点、Office/文档处理服务等。
  • 攻击面信号采集:给出 URL 模式(如 /api/v*/xml、/upload、/import、/parse、/convert、/saml/acs、/soap/*、/wsdl、/xmlrpc 等)、请求/响应头特征(application/xml、text/xml、application/soap+xml、multipart/form-data 等)、JavaScript 源码特征(XMLSerializer、DOMParser、parseFromString、xml2js、lxml 等)以及技术栈信号。
  • 逐步挖掘方法论:从映射所有 XML 入口点、识别文件上传功能、尝试内联 XXE(经典文件读取)、转向盲注 OOB、升级为文件外带、测试 SSRF 转向、测试共享后端的所有子域、参数级注入、基于错误的带外传输,到记录完整影响链。
  • Payload 与检测模式:包含基于错误的外带(复用本地 DTD,零网络出口)、经典带内文件读取、Windows 等价载荷、盲注 OOB(DNS/HTTP 回调)、通过参数实体进行盲注 OOB 文件外带(两阶段)、通过 XXE 的 SSRF(AWS 元数据)、SVG XXE、DOCX/XLSX XXE、Content-Type 互换(JSON 换 XML)等具体载荷示例,以及源码审计的 grep 模式。
  • 根因分析:默认解析器配置、框架升级未重新审查安全、隐藏的 XML 消费、StackOverflow 复制粘贴代码、SAML/SSO 库错误配置、非主要内容类型的测试缺口、微服务 XML 消息等。
  • 绕过技术:针对关键字黑名单、外部实体获取被禁用、WAF 拦截 XXE 模式、网络出口过滤、Content-Type 校验、输入长度限制等防御的绕过思路与示例。
  • 解析器生态漏洞矩阵:按语言/解析器(Java SAX/DOM、Java JAXB/JAX-WS、PHP DOMDocument、PHP simplexml、.NET XmlDocument、.NET XmlReader、Python xml.etree、Python lxml、Python xml.dom.minidom、Python defusedxml、Ruby Nokogiri 默认与 DTDLOAD、Apache Struts、IoT/工业 XML 处理器、Microsoft Office OOXML 处理器等)列出默认行为与是否默认易受攻击,并给出指纹识别信号。
  • 验证门槛:提交报告前的 Gate 0 验证,要求回答攻击者当前能做什么、受害者失去什么、能否 10 分钟内从零复现。
  • 真实影响案例:包括单端点波及 26 个域、文档上传导致本地文件读取、JSON API 隐藏 XML 解析器导致 SSRF 至内部服务等场景描述。

使用方式

资料以方法论文本、载荷示例与命令示例的形式给出使用方式,例如:

  • 使用 Burp Suite 被动扫描器标记所有 XML 内容类型的请求/响应,并拦截 JSON 端点手动将 Content-Type 换为 application/xml 与等价 XML 体。
  • 使用 OOB 监听器(Burp Collaborator、interactsh 或自托管 netcat 服务器)确认解析器是否发起出站连接。
  • 使用 curl 进行 Content-Type 互换测试,示例:
    curl -X POST https://target.com/api/endpoint \
      -H "Content-Type: application/xml" \
      -d '<?xml version="1.0"?><!DOCTYPE foo [<!ENTITY xxe SYSTEM "http://COLLABORATOR.net">]><user>&xxe;</user>'
    
  • 使用 grep 模式进行源码审计,示例:
    # PHP
    grep -rn "simplexml_load_string\|DOMDocument\|xml_parse\|loadXML\|SimpleXMLElement" .
    
    # Java
    grep -rn "DocumentBuilder\|SAXParser\|XMLReader\|XMLInputFactory\|TransformerFactory" .
    
    # Python
    grep -rn "lxml\|xml.sax\|parseString\|fromstring\|etree.parse" .
    
  • 提交前运行内联实体探针(先 <!ENTITY hello "world!"> 再在节点中使用 &hello;)判断解析器实体扩展能力。

适用场景

适用于安全测试与漏洞赏金场景中对 XXE 漏洞的狩猎,包括:XML 密集的后端集成、文件上传(SVG、DOCX、XLSX、PPTX、PDF)、SAML/SSO 端点、SOAP/WSDL 服务、Office/文档处理服务、接受 XML 的 API 网关与同时接受 JSON 的 REST API 等。

限制

  • 资料明确指出,经典 XXE 载荷(<!ENTITY xxe SYSTEM "file://...">)在 2026 年并非在所有环境都可利用;多数主流语言生态自 2018-2024 年起已加固默认 XML 解析器。建议先对目标技术栈做指纹识别再投入时间。
  • 部分环境默认安全(如 Python xml.etree.ElementTree ≥ 3.7.1、Python lxml 对文件读取、Python xml.dom.minidom 当前版本、Ruby Nokogiri 默认配置)不适用该漏洞类。
  • 提交报告需满足 Gate 0 验证:必须能展示具体敏感数据暴露或内部访问,仅“解析器发出 DNS 请求”不足以构成报告;且需能在 10 分钟内从零复现。
  • 关于收费、价格、平台或效果等事实,资料中暂未提供。