用途
hunt-brute-force 是一个安全测试技能,用于在授权范围内检测目标应用的速率限制(Rate Limiting)缺陷、爆破可行性以及信息枚举问题。它的核心目标是把「是否真的存在有效速率限制」这一判断从简单的「有没有返回 429」提升为对完整防御状态的分类,从而避免误报和漏报。
技能描述中明确指出的「皇冠资产」目标包括:无有效速率限制的 6 位 OTP 爆破(1,000,000 种组合)导致 MFA 绕过与账户接管(ATO);短/可预测/不过期的密码重置令牌爆破;用户名/邮箱枚举后可进行的定向凭证填充;优惠券、礼品卡、推荐码爆破;以及正则表达式拒绝服务(ReDoS)导致的 DoS。
主要能力
技能围绕以下几个能力展开:
-
速率限制状态分类:区分四种状态——硬账户锁定(hard account lockout)、软 IP 限流(soft IP throttle)、CAPTCHA 注入、以及静默影子限流(silent shadow-throttle)。文档强调仅检查 429 或锁定会产生假阴性,必须观察状态码、响应体、响应头、延迟以及下游是否真正成功。
-
影子限流检测:通过在一个已知位置注入「已知正确值」(例如在你自己的测试账户中把真实 OTP 放在第 500 次),确认在突发负载下该正确值是否仍能通过验证。如果不再通过,说明端点被静默限流/丢弃,而非无保护。
-
OTP / 2FA 爆破验证:先发送 101 个验证码做 PoC 探针,证明端点接受重复尝试且无 429/锁定;再用「吞吐量 × 验证码有效期对比 10^6 密钥空间」的数学论证影响严重程度,而非实际跑满 10^6。
-
用户名/邮箱枚举:通过字符串差异、状态码差异、响应长度差异以及时序中位数差异来判定。文档强调需要多次采样取中位数,单次请求不算信号;并明确通用的「如果该邮箱存在我们就已发送」消息不算枚举。
-
注册接口无限流:对 /signup//register 进行突发请求,确认可在无 429/CAPTCHA/锁定的情况下创建 N 个账户,构成自动化批量注册滥用。
-
IP / 来源轮换绕过:轮换 X-Forwarded-For、X-Real-IP、X-Originating-IP、X-Client-IP 等头,若 Phase 1 中的 429 消失,则说明限制被破坏;并通过关闭轮换复现 429 来证明绕过。
-
令牌熵测量:收集本人测试账户的重置/会话/OTP 令牌,用 Shannon 熵、xxd 结构分析、连续差值测试或 Burp Sequencer 量化有效熵位,判断是否可预测。
-
ReDoS 检测:向输入验证/搜索端点发送经典灾难性回溯载荷,观察延迟是否随字符长度超线性(倍增)增长,并用等价长度的良性字符串作为对照。
使用方式
automation 部分提供了 ffuf(OTP 爆破,含 PoC 探针与全密钥空间生成命令)、hydra(登录喷洒)、nuclei(速率限制/默认凭证模板)的示例命令。方法论按阶段组织:Phase 1 登录速率限制测试、Phase 2 OTP/2FA 爆破、Phase 3 用户名/邮箱枚举、Phase 3b 无限流注册、Phase 4 IP/来源轮换绕过、Phase 5 令牌熵、Phase 6 ReDoS 检测,并附有链条表(Chain Table)说明各发现可组合成的更高影响。
适用场景
适用于对自有或获得明确授权目标的 Web 应用进行速率限制与爆破类漏洞的安全评估,尤其是涉及登录、OTP/2FA 验证、密码重置、注册、优惠券/推荐码验证、搜索输入等端点。
限制
文档明确说明:本技能基于公开的技术类别构建,report_count 有意设为 0,不应引用无法核实的具体赏金或报告 ID。自动化测试无法真正爆破数百万组合,应聚焦于凭证喷洒和检测速率限制是否存在。全密钥空间的影响证明仅在获得明确授权且针对本人账户时进行,不得对第三方实际跑满 10^6。所有验证要求可复现(枚举需 ≥20 个样本、时序比较中位数、IP 绕过需通过开关轮换证明、令牌熵需实测、ReDoS 需超线性双倍增长加良性对照)。此外,无可达影响的速率限制缺口属于信息级,而非中危。