php-open-redirect-audit
PHP 开放重定向审计(php-open-redirect-audit)
分析 PHP 项目源码中,所有“跳转/重定向”行为是否可能被用户控制目的地址,导致钓鱼或 OAuth 等流程被劫持。
分级与编号
- 详见:
shared/SEVERITY_RATING.md - 漏洞编号:
{C/H/M/L}-REDIR-{序号}
必检 Sink(强制)
识别以下跳转输出点:
header("Location: {value}")<meta http-equiv="refresh" content="{value}">redirect()/to()/return redirect({value})- 自定义跳转函数(内部最终调用 Location 输出)
可控性追踪(必做)
必须追踪以下两类变量:
- 目的地来源:通常来自
$_GET['next']/$_POST['url']/Referer/return_to - 目的地校验:是否只允许相对路径、是否 allowlist、是否拒绝 scheme(
http://///)、是否校验域名
绕过条件(必做)
必须识别并输出潜在绕过:
- scheme 绕过:
//evil.com、http:%2f%2fevil.com - 编码绕过:双重编码、URL 编码的冒号/斜杠
- 尾部/空白字符绕过(旧实现常见)
报告输出
{output_path}/vuln_audit/redir_{timestamp}.md
条目模板(强制)
每条漏洞必须包含:
- 位置证据:跳转函数位置 + 路由
- 数据流链:用户输入 -> 校验 -> header/redirect
- 可利用前置条件:通常需登录(若在登录后跳转)与攻击者能否控制参数
- 验证 PoC(必须真实路由;把目的地参数替换为真实字段名)
- 修复建议:只允许相对路径 + 服务器端 allowlist + 对编码/scheme 做归一化后校验
证据引用(强制:来自 php-route-tracer)
每条开放重定向疑似漏洞必须逐项引用 trace 输出中 ## 9) Sink Evidence Type Checklist 的 REDIR 行对应证据要点(允许状态为待验证,但证据引用必须存在):
EVID_REDIR_OUTPUT_POINT:跳转输出点位置证据(header/redirect 的最终输出位置)EVID_REDIR_DEST_SOURCE_MAPPING:目的地来源变量映射证据(从路由参数到目的地变量)EVID_REDIR_DEST_VALIDATION_NORMALIZATION:目的地校验/归一化/allowlist/refuse scheme 的分支证据(含编码绕过处理分支)
tracer 证据缺失处理(强制)
- 若无法定位上述 1~3 任一关键证据要点:该漏洞状态只能标记为
⚠️待验证,不得直接给出✅已确认可利用。
More from 0xshe/php-code-audit-skill
php-codeigniter-audit
CodeIgniter 框架特效安全审计工具。针对 CodeIgniter 的 CSRF、XSS 输出过滤、数据库查询构造、路由与验证器配置、会话 Cookie 安全等机制进行白盒静态审计,并映射到通用漏洞类型体系(CSRF/AUTH/XSS/SQL/CFG/SESS 等)。
35php-thinkphp-audit
ThinkPHP 框架特效安全审计工具。针对 ThinkPHP 常见的鉴权/CSRF/模板转义/ORM 写入(Mass Assignment)/调试与配置暴露等机制进行白盒静态审计,并映射到通用漏洞类型体系(AUTH/CSRF/TPL/XSS/LOGIC/CFG/SESS/SQL 等)。
25php-wordpress-audit
WordPress 框架特效安全审计工具。针对 WordPress 常见 nonce/capability/check_admin_referer、AJAX action、escape/sanitize、重定向、安全上传与远程请求等机制进行白盒静态审计,并映射到通用漏洞类型体系(AUTH/CSRF/XSS/SQL/CFG/SSRF 等)。
22php-symfony-audit
Symfony 框架特效安全审计工具。针对 Symfony 常见 security.yaml、CSRF、Twig/Twig raw、表达式与访问控制等框架机制做白盒静态审计,并将风险映射到通用漏洞类型体系(AUTH/CSRF/CFG/XSS/TPL/LOGIC 等)。
21php-xxe-audit
PHP Web 源码 XXE 审计工具。识别 XML 解析点与实体处理配置,追踪 XML 输入来源与回显,输出可利用性分级、PoC 与修复建议(禁止省略)。
20php-archive-extract-audit
PHP Web 归档解压(Zip Slip/路径穿越)审计工具。识别解压条目名如何与目标目录拼接、是否存在 base dir 约束缺失,输出可利用性分级、可观测 PoC 与修复建议(禁止省略)。
20