WSTG 实战|会话管理测试(4.6 / SESS)

登录后靠”会话”维持身份,会话一旦被预测或劫持,登录再强也没用。WSTG 4.6 v5.0 扩展到 11 个子项,新增 JWT 测试、并发会话测试。

① 是什么

会话管理测试 验证从登录签发、持续维持到销毁的全过程是否安全:令牌是否随机、Cookie 是否严谨、能否被固定/劫持、登出与超时是否可靠、JWT 是否安全、并发会话是否受控。

WSTG 类别码:SESS

② 为什么重要

  • 会话令牌可预测 = 攻击者可”算”出别人会话直接登录。
  • 无 HttpOnly/Secure、会话不刷新、登出不失效、JWT 签名弱、并发会话无限制,都是被劫持的高危点。

③ 核心概念拆解(对应 4.6.x / WSTG-SESS-01 到 -11)

ID 测试项 关键点
4.6.1 / WSTG-SESS-01 测试会话管理模式 令牌生成算法(CSPRNG)、熵、不可预测、绑定 IP/UA/设备指纹、会话 ID 与认证分离
4.6.2 / WSTG-SESS-02 测试 Cookie 属性 HttpOnlySecureSameSite=Strict/LaxPath/Domain 最小化、__Host-/__Secure- 前缀
4.6.3 / WSTG-SESS-03 测试会话固定 登录前/后 Session ID 是否变化、是否接受外部 Session ID、会话迁移策略
4.6.4 / WSTG-SESS-04 测试暴露的会话变量 令牌是否出现在 URL/Referer/日志/错误页/客户端存储、日志脱敏
4.6.5 / WSTG-SESS-05 测试跨站请求伪造 (CSRF) 同步 Token 模式、双重提交 Cookie、SameSite 替代、CORS 预检、GraphQL/WS CSRF
4.6.6 / WSTG-SESS-06 测试登出功能 服务端销毁、客户端清理、单点登出、所有标签页失效、撤销刷新令牌
4.6.7 / WSTG-SESS-07 测试会话超时 空闲/绝对超时、超前告警、超时后自动登出、刷新令牌滑动窗口、长会话风险
4.6.8 / WSTG-SESS-08 测试会话困惑 多应用共享 Session、子域 Session 泄露、反向代理传递 Session、跨租户隔离
4.6.9 / WSTG-SESS-09 测试会话劫持 网络嗅探、中间人、XSS 窃取、会话侧信道、会话预测、并发会话检测
4.6.10 / WSTG-SESS-10 测试 JSON Web Tokens (JWT) 算法混淆、None 算法、弱密钥、过期/颁发者/受众验证、声明注入、JWKS 注入
4.6.11 / WSTG-SESS-11 测试并发会话 单用户并发限制、设备管理、异地登录告警、强制下线、会话列表可见性

④ 常见误区

  • 误区 1:令牌长=随机。自增/时间戳虽长但可预测。
  • 误区 2:有 HTTPS 就够。HttpOnly/SameSite 仍关键。
  • 误区 3:登出按钮点了就安全。要确认服务端会话真正失效。
  • 误区 4:JWT 无状态就不用管。签名算法、密钥管理、声明验证、撤销机制同样关键。

⑤ 一句话小结

会话测试覆盖”签发→维持→销毁”:令牌随机性、Cookie 属性、固定/暴露/CSRF、登出与超时、JWT、并发会话——任何断点都能被劫持。

下一篇:输入校验测试(4.7 / INPV)

参考来源:OWASP Web Security Testing Guide(最新 v5.0 / 2026 开发线)(本文为原创讲解,非转载原文)


This site uses Just the Docs, a documentation theme for Jekyll.