SuperAPI AI 工具集

hunt-session

安全与审计

查看项目

更新于 10-15 13:51

技能介绍

用途

hunt-session 用于系统性地测试 Web 应用会话管理生命周期中的安全缺陷,重点是会话失效与固定相关的漏洞类别。其核心关注点包括:登录时是否重新生成会话标识(会话固定),登出后旧会话是否仍有效,修改密码或邮箱后旧会话是否仍有效,刷新令牌是否轮换并具备重用检测,会话 ID 是否可预测或低熵,JWT 作为会话时是否可吊销,以及 OAuth/SSO 会话绑定与 DBSC 设备绑定是否真正强制。

主要能力

  • 会话固定测试:获取认证前的会话令牌,携带其完成登录,比较登录前后令牌是否变化;若令牌在认证边界前后保持不变且仍能访问认证数据,则判定为固定漏洞。若服务端接受攻击者任意指定的 ID 并能完成认证,则视为更严重的固定。
  • 登出失效测试:登入后记录会话,调用登出端点,再显式重放旧 Cookie 值访问受保护资源,比较响应体与认证基线。
  • 密码/邮箱变更失效测试:使用两个会话(攻击者持有的旧会话 A 与受害者会话 B),由 B 修改密码或邮箱后重放 A,验证旧会话是否仍返回账户数据。
  • Cookie 属性分析:检查 HttpOnly、Secure、SameSite 缺失以及 __Host-/__Secure- 前缀缺失,并规定各属性的报告前置条件(例如 HttpOnly 缺失仅在存在真实 XSS/DOM 汇聚点链时计为发现)。
  • 会话 ID 熵分析:采集 200 个以上新签发 ID,检查重复、长度分布、顺序/单调性、可解码结构(userId、时间戳、PID),建议使用 ent 或 dieharder 估算比特熵,参照 NIST SP 800-63B 的 ≥64 比特要求。
  • JWT 作为会话:安全解码 header 与 payload,检查 exp、jti,测试登出后重放同一 JWT 是否仍返回用户数据。
  • 刷新令牌轮换与重用检测:获取刷新令牌并轮换一次,重放旧令牌,再验证新令牌是否被重放行为吊销(即整个令牌族失效)。
  • OAuth/SSO 会话绑定与 DBSC 降级:在 IdP 单独登出后重放应用会话 Cookie,或剥离设备绑定证明头后重放普通 Cookie,判断绑定是否为强制。

使用方式

技能以分阶段方法论形式提供,包含可直接运行的 curl 命令与辅助函数:

  • 使用 get_cookie 辅助函数从 curl 的 Netscape cookie jar 中稳健提取会话 Cookie(处理 #HttpOnly_ 前缀行和多种常见 Cookie 名如 sid、JSESSIONID、connect.sid、PHPSESSID、laravel_session)。
  • 分阶段流程:Phase 1 会话固定,Phase 2 登出失效,Phase 3 密码/邮箱变更失效,Phase 4 Cookie 属性分析,Phase 5 会话 ID 熵,Phase 6 JWT 作为会话,Phase 7 刷新令牌轮换与重用检测,Phase 8 OAuth/SSO 会话绑定与 DBSC 降级。
  • 内容类型按目标选择:REST API 用 application/json,传统表单用 application/x-www-form-urlencoded,首个响应异常时两者都试。
  • 认证方式按端点获取:从 Authorization: Bearer 或 Cookie 中捕获 JWT。

适用场景

适用于对自有或获授权的 Web 应用进行会话安全测试,特别是 REST API、传统表单登录、基于 JWT 的会话、使用刷新令牌的 OAuth 流程,以及涉及 SSO/IdP 的应用。技能明确指出测试应在自己控制的测试账户上进行,不得使用真实第三方账户。

限制与误报控制

  • 不信任状态码:缓存或边缘返回的 200、通用 SPA 外壳对所有请求都返回 200,必须通过响应体差异对比确认响应体仍含账户唯一标识(邮箱、用户 ID、CSRF 令牌、账户名)。
  • 强制使用负向对照:随机或垃圾 Cookie 值不应返回相同的认证响应体;若垃圾值也返回 200 含用户数据,则端点不受会话门控,不构成发现。
  • 建议短延迟后与不同 IP 重测,因为部分服务端为惰性过期或将会话绑定到 IP。
  • 数值变化不必然安全:部分应用轮换可读 Cookie 但保留服务端会话,需对比完整 Set-Cookie 集合并确认旧值确实失效。
  • 熵分析强调测量而非目测:长随机样式的令牌不等于强;短令牌也可能安全,需结构解码与大样本熵估计。
  • 明确分工:JWT alg/kid 篡改归 hunt-api-misconfig,OAuth state/redirect_uri 归 hunt-oauth,CSRF 机制归 hunt-csrf,Cookie 窃取汇聚点归 hunt-xss/hunt-dom,ATO 链接归 hunt-ato。

攻击面信号

技能列出与会话相关的端点与头部信号,如 Set-Cookie 的多种会话名、/login、/logout、/oauth/token、/auth/refresh、/api/token/refresh、/account/change-password、/settings/email,以及 Cookie 缺失 HttpOnly/Secure/SameSite、SameSite=None 无 Secure、__Host- 前缀等。

依据来源

技能声明不编造 CVE 或报告编号,而是编码以下公开文档所列模式:OWASP WSTG-SESS-03 / WSTG-SESS-01(会话固定、登录 CSRF、认证时不重新生成)、Argo CD CVE-2024-22424(SameSite=Lax 同级子域 CSRF)、Auth0/IETF OAuth-Security-BCP(刷新令牌轮换与自动重用检测)、W3C/Chrome DBSC 草案(设备绑定会话凭据)、OWASP WSTG-SESS-02 与 RFC 6265bis(Cookie 属性加固与 __Host-/__Secure- 前缀)、NIST SP 800-63B(会话标识熵要求)。

暂未提供

关于收费、价格、许可方式、平台支持范围、安装命令、集成方式等具体信息,资料中暂未提供。