SuperAPI AI 工具集

php-xss-audit

安全与审计

查看项目

更新于 10-16 15:05

技能介绍

PHP XSS 审计(php-xss-audit)

一、用途

php-xss-audit 用于分析 PHP 项目源码,识别跨站脚本(XSS)漏洞,即用户输入进入输出上下文且未做正确转义/编码,或框架禁用了自动转义导致表达式执行/HTML 注入的情况。

二、分级与编号

分级规则详见 shared/SEVERITY_RATING.md。漏洞编号格式为 {C/H/M/L}-XSS-{序号}。

三、XSS Sink(必做)

需识别以下输出点:

  1. 原生输出:echo/print/printf/<?= ?>(输出变量到响应)
  2. 字符串拼接到响应:header() / setcookie()(若包含可控内容)
  3. 模板渲染:
    • Twig:{{ }}(转义)与 {% autoescape false %} / |raw 风险点
    • Smarty:fetch/display 与不安全变量输出
    • Blade 类:{!! !!}(不转义输出)
  4. 动态脚本/事件属性:输出到 on* 属性、<script> 内、URL 参数

四、逃逸/防护检查(必做)

对每条疑似链必须分析:

  • 是否存在 htmlspecialchars/htmlentities 或框架自动转义
  • 是否存在上下文编码(HTML、属性、JS、URL)
  • 是否禁用了转义(raw/raw filter/unescaped output)

五、tracer 触发条件(必做)

  • 用户输入经历多层处理、拼接成 HTML 片段
  • 存在分支:某分支转义,另一分支不转义
  • 输出点在模板层,输入在 controller 层

六、报告输出

输出到:{output_path}/vuln_audit/xss_{timestamp}.md

七、漏洞条目模板(强制)

与 php-sql-audit 基本一致,但在数据流链里必须明确:

  • 输出上下文:HTML body/attribute/script/URL 参数/模板片段
  • 具体转义函数或转义关闭点的位置与证据
  • PoC 必须包含可执行 XSS payload,并区分需要的编码方式

八、证据引用(强制:来自 php-route-tracer)

每条 XSS 疑似漏洞必须逐项引用 trace 输出中 ## 9) Sink Evidence Type Checklist 的 XSS 行对应证据要点(允许状态为待验证,但证据引用必须存在):

  • EVID_XSS_OUTPUT_POINT:响应输出点位置证据(echo/模板输出/<script>或属性/URL 上下文)
  • EVID_XSS_USER_INPUT_INTO_OUTPUT:用户输入进入输出的证据
  • EVID_XSS_ESCAPE_OR_RAW_CONTROL:转义/禁用转义证据(htmlspecialchars 等或 raw/raw 模式证据)

九、tracer 证据缺失处理(强制)

若无法定位上述 1~3 任一关键证据要点:该漏洞状态只能标记为 ⚠️待验证,不得直接给出 ✅已确认可利用。

十、适用场景与限制

该工具适用于 PHP Web 源码的 XSS 安全审计,依赖 php-route-tracer 提供的 trace 证据。其余平台支持、收费方式、使用命令等资料暂未提供。