Learn-skills.dev php-session-cookie-audit
PHP Web 源码会话与 Cookie 安全审计工具。识别 session 固定、Cookie flags 不安全、JWT 验证缺陷与记住登录风险,输出分级、PoC 与修复建议(禁止省略)。
install
source · Clone the upstream repo
git clone https://github.com/NeverSight/learn-skills.dev
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/NeverSight/learn-skills.dev "$T" && mkdir -p ~/.claude/skills && cp -r "$T/data/skills-md/0xshe/php-code-audit-skill/php-session-cookie-audit" ~/.claude/skills/neversight-learn-skills-dev-php-session-cookie-audit && rm -rf "$T"
manifest:
data/skills-md/0xshe/php-code-audit-skill/php-session-cookie-audit/SKILL.mdsource content
PHP 会话与 Cookie 安全审计(php-session-cookie-audit)
分析 PHP 项目源码中认证会话相关的安全设置与实现逻辑,重点检测:
- session fixation
- cookie flags 缺失(HttpOnly/Secure/SameSite)
- JWT 校验缺陷(签名算法混淆、未校验 exp/iss/aud、弱密钥)
- remember-me/持久登录弱点(若存在)
分级与编号
- 详见:
shared/SEVERITY_RATING.md - 漏洞编号:
{C/H/M/L}-SESS-{序号}
必检内容(强制)
- Session 初始化:
- 是否在登录后
session_regenerate_id - 是否设置合理的超时、cookie 参数
- 是否在登录后
- Cookie flags:
、HttpOnly
、Secure
是否明确设置SameSite
- JWT:
- decode/verify 使用的算法是否固定
- 是否验证
/exp
/nbf
/issaud - secret/公钥是否硬编码或读取不安全
- 退出/失效:
- logout 是否真正清除 session 与 token
PoC 要求(强制)
- 对 session fixation:给出请求序列(登录前固定 session id -> 登录后验证会话变化)
- 对 cookie flags:说明浏览器侧可见差异与危害(并给出示例 HTTP 响应头)
- 对 JWT:给出“签名算法/claim 校验缺失”的请求 PoC 框架(必须说明 payload 如何构造)
证据引用(强制:来自 php-route-tracer)
每条会话与 Cookie 安全疑似风险必须逐项引用 trace 输出中
## 9) Sink Evidence Type Checklist 的 SESS 行对应证据要点(允许状态为待验证,但证据引用必须存在):
:登录后是否EVID_SESS_SESSION_INIT_REGEN
等会话固定防护证据session_regenerate_id
:Cookie flags(HttpOnly/Secure/SameSite)设置证据EVID_SESS_COOKIE_FLAGS
:JWT 签名算法固定与 exp/nbf/iss/aud 等 claim 校验证据EVID_SESS_JWT_VERIFY_CLAIMS
:logout 是否真正清除 session 与 token 的证据EVID_SESS_LOGOUT_CLEAR
tracer 证据缺失处理(强制)
- 若 trace 契约校验失败或缺失上述 1~4 任一关键证据点:该风险只能标记为
,不得给出“已确认可利用”的断言。⚠️待验证
报告输出
{output_path}/vuln_audit/sess_{timestamp}.md
条目模板(强制)
必须包含:位置证据 + 数据流链(token/session -> 校验 -> 授权)+ 可利用前置条件 + PoC + 修复建议 +
rg 搜索语句。