SuperAPI AI 工具集

broken-authentication

安全与审计

查看项目

更新于 10-15 15:23

技能介绍

用途

该技能用于识别和利用 Web 应用中的身份认证与会话管理漏洞。失效的身份认证长期位列 OWASP Top 10,可导致账户接管、身份盗用以及对敏感系统的未授权访问。技能覆盖密码策略、会话处理、多因素认证和凭据管理的测试方法。

前提条件

所需知识

  • HTTP 协议与会话机制
  • 认证类型(单因素、双因素、多因素)
  • Cookie 与令牌处理
  • 常见认证框架

所需工具

  • Burp Suite Professional 或 Community
  • Hydra 或类似暴力破解工具
  • 用于凭据测试的自定义字典
  • 浏览器开发者工具

所需访问权限

  • 目标应用 URL
  • 测试账号凭据
  • 书面测试授权

输出与交付物

  • 认证评估报告——记录所有发现的漏洞
  • 凭据测试结果——暴力破解与字典攻击结果
  • 会话安全分析——令牌随机性与超时评估
  • 修复建议——安全加固指导

核心工作流

阶段 1:认证机制分析

理解应用的认证架构:

  • 识别认证类型:基于密码(表单、Basic、Digest)、基于令牌(JWT、OAuth、API 密钥)、基于证书(双向 TLS)、多因素(短信、TOTP、硬件令牌)
  • 映射认证端点:/login、/signin、/authenticate、/register、/signup、/forgot-password、/reset-password、/logout、/signout、/api/auth/、/oauth/
  • 捕获并分析认证请求。

阶段 2:密码策略测试

评估密码要求与执行情况:测试最小长度、复杂度、常见弱密码、用户名作为密码,记录策略缺口。

阶段 3:凭据枚举

测试用户名枚举漏洞,比较有效与无效用户名的响应差异、时间差异、响应码和注册消息,检查密码重置和 API 响应是否泄露信息。

阶段 4:暴力破解测试

测试账户锁定与速率限制,可使用 Hydra 进行基于表单的认证测试,或使用 Burp Intruder 加载字典并分析响应长度与状态码。检查账户锁定(尝试次数、时长、通知)、速率限制(每分钟请求上限、基于 IP 还是账户、是否可通过头部绕过)以及验证码机制。

阶段 5:撞库测试

使用已知泄露的凭据(邮箱:密码对)进行测试,与暴力破解不同。可借助 Burp Intruder 的 Pitchfork 攻击模式加载匹配的邮箱与密码列表,并通过降低请求速率、轮换源 IP、随机化 User-Agent 和添加延迟来规避检测。

阶段 6:会话管理测试

分析会话令牌安全性:熵是否足够、长度是否充足(128 位以上)、是否可预测、安全标志(HttpOnly、Secure、SameSite)是否设置。可编写脚本收集多个会话令牌并分析模式、顺序递增与时间戳成分。

阶段 7:会话固定测试

测试认证后会话是否重新生成。若登录后 SESSIONID 保持不变则可判定存在漏洞。攻击场景:攻击者获取会话并将其固定在链接中发给受害者,受害者登录后攻击者即拥有已认证会话。

阶段 8:会话超时测试

验证会话过期策略:测试空闲超时(15、30、60 分钟无操作后会话是否失效)、绝对超时(强制登出时间),以及登出后旧会话 Cookie 是否在服务端失效。

阶段 9:多因素认证测试

评估 MFA 实现安全性:OTP 暴力破解(4 位 OTP 有 10000 种组合,6 位有 1000000 种,测试 OTP 端点的速率限制)、OTP 绕过技巧(直接访问 URL 跳过 MFA 步骤、篡改响应表示 MFA 已通过、提交空 OTP、重用旧的有效 OTP)、API 版本降级攻击(若新版有速率限制,尝试旧版接口)、测试 MFA 注册与恢复流程(能否在设置中跳过 MFA、备份码是否无需验证即可访问、能否仅凭邮件禁用 MFA)。

阶段 10:密码重置测试

分析密码重置安全性:令牌安全性(长度与随机性、过期时间、单次使用、账户绑定)、令牌篡改(在有效令牌下修改用户参数)、Host 头注入(重置邮件可能包含攻击者域名)。

快速参考

常见漏洞类型

漏洞 风险 测试方法
弱密码 高 策略测试、字典攻击
无锁定 高 暴力破解测试
用户名枚举 中 差分响应分析
会话固定 高 登录前后会话对比
弱会话令牌 高 熵分析
无会话超时 中 长时间会话测试
不安全的密码重置 高 令牌分析、流程绕过
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:账户锁定绕过

识别锁定阈值(如 5 次错误密码后锁定 30 分钟),尝试通过 X-Forwarded-For 头部轮换 IP 绕过,或通过大小写变形(Admin、ADMIN)测试是否被视为不同账户。

示例 2:JWT 令牌攻击

捕获 JWT 令牌并解码分析,尝试“none”算法攻击:将头部改为 {"alg":"none","typ":"JWT"} 并移除签名,提交修改后的令牌。

示例 3:密码重置令牌利用

请求重置并捕获链接,测试令牌属性(重用、过期、修改字符),测试用户参数篡改(用测试用户的令牌重置管理员密码)。

故障排查

问题 解决方案
暴力破解太慢 识别限流范围;轮换 IP;添加延迟;使用定向字典
会话分析无结论 收集 1000+ 令牌;使用统计工具;检查时间戳;对比账户
无法绕过 MFA 记录为安全;测试备份/恢复机制;检查 MFA 疲劳;验证注册
账户锁定阻碍测试 申请多个测试账号;先测试阈值;放慢时序