用途
Broken Authentication Testing 是一个安全测试技能,用于识别和利用 Web 应用中的身份认证与会话管理漏洞。失效的身份认证长期位列 OWASP Top 10,可能导致账户接管、身份盗用以及对敏感系统的未授权访问。该技能覆盖密码策略、会话处理、多因素认证和凭据管理等方面的测试方法。
主要能力
技能围绕十个阶段的工作流展开:
- 认证机制分析:识别认证类型(基于密码、基于令牌如 JWT/OAuth/API 密钥、基于证书、多因素),并映射认证端点(/login、/register、/forgot-password、/logout、/api/auth/、/oauth/ 等),捕获并分析认证请求。
- 密码策略测试:评估最小长度、复杂度要求、常见弱密码以及用户名作为密码是否被允许,记录策略缺口。
- 凭据枚举:通过比较有效与无效用户名的响应差异(错误消息、响应时间、HTTP 状态码、注册表单、密码重置、API 响应)检测用户名枚举漏洞。
- 暴力破解测试:使用 Hydra 或 Burp Intruder 测试账户锁定与速率限制,检查锁定阈值、锁定时长、锁定通知、请求频率限制、CAPTCHA 等防护。
- 凭据填充:使用已知泄露的邮箱与密码对进行测试,与暴力破解不同,并涉及检测规避手段(降低请求速率、轮换源 IP、随机化 User-Agent、添加延迟)。
- 会话管理测试:分析会话令牌的熵、长度、可预测性以及安全标志(HttpOnly、Secure、SameSite),并提供 Python 脚本示例收集多个会话令牌进行分析。
- 会话固定测试:检查认证后会话是否重新生成,并描述攻击者固定会话的攻击场景。
- 会话超时测试:验证空闲超时、绝对超时以及登出功能是否在服务端使会话失效。
- 多因素认证测试:评估 OTP 暴力破解、OTP 绕过技术(跳过 MFA 步骤、修改响应、空 OTP、重用旧 OTP)、MFA 注册与恢复流程的安全性。
- 密码重置测试:分析重置令牌的长度、随机性、过期时间、单次使用和账户绑定,测试令牌操纵与 Host 头注入。
技能还提供快速参考表,列出常见漏洞类型、风险等级与测试方法,以及凭据测试载荷、会话 Cookie 标志说明和速率限制绕过请求头。
使用方式
技能以命令行与 Burp Suite 操作为主,包含 Hydra 命令示例、Burp Intruder 配置步骤、Python 会话令牌分析脚本,以及针对账户锁定绕过、JWT 令牌攻击、密码重置令牌利用等场景的示例。
适用场景
适用于获得明确书面授权的 Web 应用安全评估,尤其是需要检查认证与会话管理安全性的渗透测试项目。
限制
- 仅可在获得明确书面授权的情况下测试,避免使用真实泄露凭据,不得访问真实用户账户,并记录所有测试活动。
- 技术限制包括 CAPTCHA 可能阻止自动化测试、速率限制影响暴力破解时间、MFA 显著增加攻击难度、部分漏洞需要受害者交互。
- 范围考虑包括测试账户可能与生产环境行为不同、测试环境中部分功能可能被禁用、第三方认证可能不在范围内、生产环境测试需要格外谨慎。
- 技能还提供故障排查建议,如暴力破解过慢、会话分析不确定、MFA 无法绕过、账户锁定阻止测试等情况的应对方法。