SuperAPI AI 工具集

sast-xxe

安全与审计

查看项目

更新于 10-16 02:50

技能介绍

用途

sast-xxe 是一个专注于在代码库中检测 XML 外部实体(XXE)漏洞的安全评估技能。它通过三阶段流程(侦察、批量验证、合并)系统性地发现并确认 XXE 风险,适用于安全审计、代码审查和 DevSecOps 流程。

主要能力

  • 侦察阶段:在代码库中查找所有未显式禁用外部实体解析的 XML 解析点,覆盖 Python、Java、PHP、.NET、Node.js、Ruby、Go 等语言的常见 XML 库。
  • 批量验证阶段:以每批 3 个并行子代理的方式,追踪用户可控输入是否到达这些解析器,确认可利用性。
  • 合并阶段:将各批次结果整合为一份统一报告。
  • 安全模式识别:能够区分安全与不安全的解析配置,例如识别 defusedxml、lxml 的 resolve_entities=False、Java 的 disallow-doctype-decl、.NET 的 DtdProcessing.Prohibit 等防护措施。
  • 漏洞类型覆盖:包括本地文件读取、SSRF、拒绝服务(Billion Laughs)、盲 XXE 带外数据泄露等。

使用方式

该技能以子代理方式运行,需要先存在 sast/architecture.md 文件(若不存在,需先运行分析技能)。执行时,将架构摘要作为上下文传递给所有子代理。

  1. 阶段一:启动子代理查找脆弱 XML 解析点,结果写入 sast/xxe-recon.md。
  2. 阶段间检查:读取侦察结果,若未发现脆弱点,则直接写入 sast/xxe-results.md 并停止。
  3. 阶段二:仅当存在至少一个脆弱点时,启动批量验证子代理追踪用户输入。
  4. 阶段三:合并结果生成最终报告。

适用场景

  • 对包含 XML 解析功能的代码库进行安全审计。
  • 在 CI/CD 流程中集成 XXE 检测。
  • 开发人员自查 XML 处理代码的安全性。
  • 安全团队进行漏洞挖掘与验证。

限制

  • 依赖 sast/architecture.md 文件,需先运行分析技能。
  • 仅针对 XXE 漏洞,不覆盖其他类型的安全问题。
  • 需要人工确认最终结果,避免误报。
  • 部分库(如 Go 标准库 encoding/xml)默认不解析外部实体,需结合第三方库判断。
  • 具体支持的平台、收费模式、价格等信息暂未提供。