Skip to content

如何检测与利用 Web 应用的身份验证漏洞(Broken Authentication)

针对 OWASP Top 10 中常客的“身份验证失效”问题,通过系统化的测试流程,识别并利用账户接管、会话劫持和多因素认证绕过等漏洞。

为什么需要这个技能

身份验证漏洞是 Web 应用最严重的安全缺陷之一。如果身份验证机制设计不当,攻击者可以通过暴力破解、会话预测或凭据填充轻松获取用户权限。这不仅会导致单个账户被接管,还可能导致敏感系统被非法访问,造成严重的身份盗用和数据泄露。

掌握该技能可以帮助安全研究员和开发者在生产环境前发现缺陷,确保会话令牌(Session Token)足够随机、密码策略足够强健且多因素认证(MFA)无法被绕过。

适用场景

  • 进行专业的 Web 渗透测试或 Bug Bounty 挖掘时。
  • 对企业内部系统的身份认证流程进行安全审计。
  • 验证新开发的登录、注册、找回密码等功能是否符合安全基线。
  • 分析 JWT 等现代令牌机制是否存在实现缺陷。

核心工作流

1. 身份验证机制分析

首先识别应用采用的认证类型(基于密码、JWT 令牌、OAuth 或证书)并映射所有关键端点(/login, /reset-password, /api/auth/*)。

2. 密码策略与凭据枚举

测试密码长度、复杂性要求,以及是否存在“用户名枚举”漏洞(例如通过登录失败时的错误提示差异来判断账号是否存在)。

3. 暴力破解与凭据填充

利用 Hydra 或 Burp Suite Intruder 测试账户锁定机制和速率限制。尝试使用已知的泄露数据集进行凭据填充(Credential Stuffing)。

4. 会话管理测试

  • 熵值分析:分析 SESSIONID 是否可预测。
  • 会话固定:检查登录前后 Session ID 是否发生变化。
  • 超时验证:测试空闲超时和绝对超时是否生效,以及登出后令牌是否在服务端失效。

5. MFA 与找回密码测试

尝试绕过 MFA 步骤(如直接访问受保护 URL 或修改响应包),并分析找回密码令牌的随机性及其是否允许重复使用。

bash
# 使用 Hydra 进行表单暴力破解示例
hydra -l admin -P /usr/share/wordlists/rockyou.txt \
  target.com http-post-form \
  "/login:username=^USER^&password=^PASS^:Invalid credentials"
python
# 简易会话令牌熵值分析脚本
import requests

tokens = []
for i in range(100):
    response = requests.get("https://target.com/login")
    token = response.cookies.get("SESSIONID")
    tokens.append(token)
# 随后分析 tokens 序列是否存在规律性或时间戳特征

下载和安装

下载 broken-authentication 中文版 Skill ZIP

解压后将目录放入你的 AI 工具 skills 文件夹,重启工具后即可使用。具体路径参考内附的 USAGE.zh.md

你可能还需要

暂无推荐