用途 本技能用于在 Web 应用中识别并利用身份认证与会话管理漏洞。失效的身份认证长期位列 OWASP Top 10,可能导致账号接管、身份盗用以及敏感系统未授权访问。技能覆盖密码策略、会话处理、多因素认证和凭据管理方面的测试方法。
授权与使用前提 仅限教育目的或经授权的安全评估使用。使用前必须获得系统所有者明确书面许可,滥用属违法且被严格禁止。每次执行探测、利用、更改、持久化、提取数据或尝试凭据访问前,须经强制确认门:要求用户说明确切目标 URL、IP、账号或资源;确认书面授权及允许范围;展示确切的命令并解释预期效果;在当前对话中等待明确确认。缺少确认时保持只读,仅提供防御性指导,优先使用沙箱、一次性虚拟机或受控实验环境。
所需知识、工具与访问 知识:HTTP 协议与会话机制、认证类型(SFA、2FA、MFA)、Cookie 与令牌处理、常见认证框架。工具:Burp Suite 专业版或社区版、Hydra 等暴力破解工具、用于凭据测试的自定义字典、浏览器开发者工具。访问:目标应用 URL、测试账号凭据、书面测试授权。
输出与交付物 身份认证评估报告(记录所有已识别漏洞)、凭据测试结果(暴力破解与字典攻击结果)、会话安全分析(令牌随机性与超时评估)、修复建议(安全加固指导)。
核心工作流程 第 1 阶段:认证机制分析。识别认证类型(基于密码:表单、Basic、Digest;基于令牌:JWT、OAuth、API Key;基于证书:双向 TLS;多因素:短信、TOTP、硬件令牌),映射认证端点(/login、/signin、/authenticate、/register、/signup、/forgot-password、/reset-password、/logout、/signout、/api/auth/、/oauth/),捕获并分析认证请求。
第 2 阶段:密码策略测试。测试最小长度、复杂度、常见弱密码(123456、password、qwerty、admin)、用户名作密码(admin/admin、test/test),记录策略缺口:最小长度小于 8、无复杂度要求、允许常见密码、用户名作密码。
第 3 阶段:凭据枚举。比较有效与无效用户名的响应差异(“Invalid username” 与 “Invalid password”)、时序差异、响应码、注册消息;检查密码重置(“Email sent if account exists” 为安全,“No account with that email” 泄露信息)及 API 响应({"error": "user_not_found"} 与 {"error": "invalid_password"})。
第 4 阶段:暴力破解测试。使用 Hydra 对表单认证进行测试,示例:hydra -l admin -P /usr/share/wordlists/rockyou.txt target.com http-post-form "/login:username=^USER^&password=^PASS^:Invalid credentials";或使用 Burp Intruder 捕获登录请求、设置密码字段载荷位置、加载字典、分析响应长度与码。检查账号锁定(多少次尝试后、锁定时长、是否通知)、速率限制(每分钟请求数、基于 IP 还是账号、是否可通过 X-Forwarded-For 绕过)、验证码(失败尝试后是否出现、是否易绕过)。
第 5 阶段:凭据填充。与暴力破解不同,使用泄露事件中已知的邮箱:密码对。可用 Burp Intruder 的 Pitchfork 攻击设置用户名与密码位置、加载对应匹配的邮箱与密码列表、分析成功登录。规避检测:降低请求速率、轮换源 IP、随机化 User-Agent、增加尝试间隔。
第 6 阶段:会话管理测试。分析会话令牌安全性:捕获会话 Cookie(如 Cookie: SESSIONID=abc123def456),测试熵、长度(是否 128+ 位)、可预测性(是否有顺序模式)、安全标志(HttpOnly、Secure、SameSite)。可收集多个令牌进行模式分析、顺序递增检查、熵计算、时间戳成分查找。
第 7 阶段:会话固定测试。检查认证后会话是否重新生成:登录前获取会话,使用同一会话登录,若登录后 SESSIONID 不变则可疑,若分配新会话则安全。攻击场景:攻击者获得会话并构造带固定会话的链接发给受害者,受害者使用攻击者会话登录后,攻击者即持有已认证会话。
第 8 阶段:会话超时测试。验证空闲超时(登录后等待 15、30、60 分钟再使用会话)、绝对超时(持续使用会话,检查是否在设定周期如 8 小时、24 小时后强制登出)、登出功能(登出后尝试复用旧 Cookie,会话应在服务端失效)。
第 9 阶段:多因素认证测试。评估 OTP 暴力破解(4 位 OTP 为 10,000 种组合,6 位为 1,000,000 种,测试 OTP 端点的速率限制);OTP 绕过技术(直接 URL 访问跳过 MFA 步骤、修改响应指示 MFA 通过、提交空/空值 OTP、复用先前有效 OTP);API 版本降级攻击(若 /api/v3/check-otp 有速率限制,尝试旧版本 /api/v2/check-otp,旧版本可能缺少安全控制);使用 Burp Intruder 对 OTP 字段设置数字载荷(0000-9999)检查绕过。测试 MFA 注册(能否在设置期间跳过 MFA、能否未经验证访问备份码)与恢复流程(能否仅通过邮件禁用 MFA、社工可能性)。
第 10 阶段:密码重置测试。分析重置令牌安全性:长度与随机性、过期时间、一次性强制、账号绑定;令牌操纵(在有效令牌下修改 user 参数);Host 头注入(在 /forgot-password 请求中设置 Host: attacker.com,重置邮件可能包含攻击者域名)。
常用参考 常见漏洞类型:弱密码(高危,策略测试、字典攻击)、无锁定(高危,暴力破解测试)、用户名枚举(中危,差异响应分析)、会话固定(高危,登录前后会话比较)、弱会话令牌(高危,熵分析)、无会话超时(中危,长时间会话测试)、不安全密码重置(高危,令牌分析、流程绕过)、MFA 绕过(严重,直接访问、响应操纵)。
凭据测试载荷:默认凭据(admin:admin、admin:password、admin:123456、root:root、test:test、user:user);常见密码(123456、password、12345678、qwerty、abc123、password1、admin123);泄露凭据数据库(Have I Been Pwned 数据集、SecLists 密码表、自定义定向列表)。
会话 Cookie 标志:HttpOnly(防止 JS 访问,缺失则 XSS 可窃取会话)、Secure(仅 HTTPS,缺失则可能经 HTTP 发送)、SameSite(CSRF 防护,缺失则允许跨站请求)、Path(URL 范围,缺失则暴露更广)、Domain(域名范围,缺失则子域可访问)、Expires(生命周期,缺失则为持久会话)。
速率限制绕过头:X-Forwarded-For、X-Real-IP、X-Originating-IP、X-Client-IP、X-Remote-IP、True-Client-IP(均设为 127.0.0.1)。
约束与限制 法律要求:仅在明确书面授权下测试;避免使用真实泄露凭据;不得访问实际用户账号;记录所有测试活动。技术限制:验证码可能阻碍自动化测试;速率限制影响暴力破解时序;MFA 显著增加攻击难度;部分漏洞需要受害者交互。范围考虑:测试账号可能与生产环境行为不同;测试环境中部分功能可能被禁用;第三方认证可能不在范围内;生产环境测试需格外谨慎。
示例 示例 1:账号锁定绕过。步骤 1 识别锁定阈值(尝试 5 次错误密码,结果“账号锁定 30 分钟”);步骤 2 测试通过 IP 轮换绕过(使用 X-Forwarded-For 头,每次尝试递增 IP);步骤 3 测试通过大小写操纵绕过(username=Admin 与 admin、ADMIN,部分系统视为不同账号)。
示例 2:JWT 令牌攻击。步骤 1 捕获 JWT;步骤 2 解码分析 Header 与 Payload;步骤 3 尝试 "none" 算法攻击(将 header 改为 {"alg":"none","typ":"JWT"} 并移除签名);步骤 4 提交修改后的令牌。
示例 3:密码重置令牌利用。步骤 1 为测试账号请求重置;步骤 2 捕获重置链接;步骤 3 测试令牌属性(复用、过期、修改字符);步骤 4 测试用户参数操纵(在有效令牌下将 email 改为 admin@example.com,检查能否重置管理员密码)。
故障排查 暴力破解太慢:识别速率限制范围;IP 轮换;增加延迟;使用定向字典。会话分析无结论:收集 1000+ 令牌;使用统计工具;检查时间戳;比较不同账号。MFA 无法绕过:记录为安全;测试备份/恢复机制;检查 MFA 疲劳;验证注册流程。账号锁定阻碍测试:申请多个测试账号;先测阈值;使用更慢的时序。