暴力破解与速率限制 (Brute Force & Rate Limit)
摘要 (Summary)
工具 (Tools)
- ZephrFish/OmniProx - 来自不同提供商的 IP 轮换 - 类似于 FireProx,但适用于 GCP、Azure、阿里巴巴和 CloudFlare。
- ddd/gpb - 通过轮换 IPv6 地址,对任何 Google 用户的电话号码进行暴力破解。
- ffuf/ffuf - 用 Go 编写的快速 Web 模糊测试工具 (fuzzer)。
- PortSwigger/Burp Suite - 行业领先的漏洞扫描、渗透测试和 Web 应用安全平台。
- lwthiker/curl-impersonate - 一个特殊的 curl 构建版本,可以模拟 Chrome 和 Firefox。
暴力破解 (Bruteforce)
在 Web 环境中,暴力破解是指尝试获得 Web 应用程序未经授权访问的方法,特别是通过登录表单或其他用户输入字段。攻击者系统地输入大量的凭据组合或其他值(例如,遍历数字范围),以利用弱密码或不足的安全措施。
例如,他们可能会提交成千上万个用户名和密码组合,或者通过遍历一个范围(如 0 到 10,000)来猜测安全令牌。如果这种方法没有得到有效的缓解,可能会导致未经授权的访问和数据泄露。
诸如速率限制 (rate limiting)、账户锁定策略、CAPTCHA 和强密码要求之类的对策,对于保护 Web 应用程序免受此类暴力破解攻击至关重要。
Burp Suite Intruder
-
Sniper 攻击 (狙击手):针对单一位置(一个变量),同时循环遍历一个 Payload 集。
-
Battering ram 攻击 (攻城槌):使用单一 Payload 集,同时将相同的 Payload 发送到所有标记的位置。
-
Pitchfork 攻击 (干草叉):并行使用不同的 Payload 列表,将每个列表中的第 n 个条目组合到一个请求中。
-
Cluster bomb 攻击 (集束炸弹):遍历多个 Payload 集的所有组合。
FFUF
ffuf -w usernames.txt:USER -w passwords.txt:PASS \
-u https://target.tld/login \
-X POST -d "username=USER&password=PASS" \
-H "Content-Type: application/x-www-form-urlencoded" \
-H "X-Forwarded-For: FUZZ" -w ipv4-list.txt:FUZZ \
-mc all
速率限制 (Rate Limit)
HTTP Pipelining (HTTP 管线化)
HTTP 管线化是 HTTP/1.1 的一个功能,它允许客户端在同一个持久的 TCP 连接上发送多个 HTTP 请求,而无需先等待相应的响应。客户端在同一个连接上“像管道一样”接连发送请求。
TLS 栈 - JA3
JA3 是一种通过对 TLS "hello" 消息的内容进行哈希处理,来对 TLS 客户端进行指纹识别的方法(JA3S 应用于 TLS 服务器)。它提供了一个紧凑的标识符,即使在更高级别的协议字段(如 HTTP user-agent)被隐藏或伪造时,您也可以用它来检测、分类和跟踪网络上的客户端。
JA3 收集 Client Hello 数据包中以下字段的字节十进制值:SSL 版本、接受的加密套件、扩展列表、椭圆曲线和椭圆曲线格式。然后按顺序将这些值连接在一起,使用 "," 分隔每个字段,使用 "-" 分隔每个字段中的每个值。
- Burp Suite JA3:
53d67b2a806147a7d1d5df74b54dd049,62f6a6727fda5a1104d5b147cd82e520 - Tor 客户端 JA3:
e7d705a3286e19ea42f587b344ee6865
对策:
- 使用浏览器驱动的自动化工具 (Puppeteer / Playwright)
- 使用 lwthiker/curl-impersonate 伪造 TLS 握手
- 适用于浏览器/库的 JA3 随机化插件
IPv4 网络 (Network IPv4)
使用多个代理来模拟多个客户端。
-
使用
random_chain来轮换每个请求 -
将每个连接要链接的代理数量设置为 1。
-
最后,在配置文件中指定代理:
IPv6 网络 (Network IPv6)
许多云提供商(如 Vultr)提供 /64 IPv6 范围,它提供了海量的地址 (18 446 744 073 709 551 616)。这允许在暴力破解攻击期间进行大规模的 IP 轮换。