会话管理是Web应用安全的用于在无状态的HTTP协议上维持用户状态。漏洞主要源于会话令牌(Session Token)的生成、传输、验证和销毁过程中的缺陷。攻击者利用这些缺陷可劫持用户会话,未经授权访问敏感数据或执行特权操作,属于OWASP TOP 10中身份验证失效的高频风险。
会话管理漏洞测试方法
1.令牌强度测试
验证会话令牌的随机性与熵值,防止预测与枚举。
方法:使用Burp Suite或OWASP ZAP抓取大量令牌(如收集10000个),分析其模式。
使用统计工具(如ENT测试套件、Burp的Sequencer)分析令牌随机性。合格的令牌应无可见模式,熵值足够高。
检查令牌长度与字符集。弱令牌可能过短(如32位以下)或仅使用十六进制字符。
2. 传输安全测试
确保令牌在传输中不被窃取。
方法:检查是否仅通过HTTPS加密通道传输令牌。任何HTTP请求中的令牌暴露均为高危漏洞。
检查Cookie是否设置了Secure属性,强制通过TLS传输。
检查URL重写(URL rewriting)情况。令牌出现在URL中易被记录于浏览器历史、日志或Referer头,造成泄漏。
3. 令牌固定、劫持测试
验证系统是否在登录前后更新令牌,防止会话固定攻击。
方法:在登录前获取低权限令牌(如匿名会话)。
使用该令牌完成登录流程。
登录后,检查令牌是否被重新生成。若登录前后令牌未变,则存在固定漏洞,攻击者可诱导用户使用已知令牌登录后劫持其会话。
4. 生命周期管理测试
验证令牌的失效机制是否健全。
方法:过期测试:登录后等待空闲超时时间(如15分钟),尝试操作。系统应使令牌失效并要求重新认证。
登出测试:执行登出操作后,尝试在后续请求中重用旧令牌访问受保护资源。系统应拒绝请求并销毁服务端会话数据。
并发会话测试:同一用户从多个浏览器登录,检查系统如何处理。安全做法是使旧会话失效或提供会话管理面板。
5. Cookie属性测试
检查关键安全属性的设置。
HttpOnly:应设置为True,阻止JavaScript通过document.coo