Rate Limit Bypass

Reading time: 5 minutes

tip

学习和实践 AWS 黑客技术:HackTricks Training AWS Red Team Expert (ARTE)
学习和实践 GCP 黑客技术:HackTricks Training GCP Red Team Expert (GRTE)

支持 HackTricks

Rate limit bypass techniques

Exploring Similar Endpoints

应尝试对目标端点的变体进行暴力攻击,例如 /api/v3/sign-up,包括 /Sing-up/SignUp/singup/api/v1/sign-up/api/sign-up 等替代方案。

Incorporating Blank Characters in Code or Parameters

在代码或参数中插入空字节,如 %00%0d%0a%0d%0a%09%0C%20 可以是一种有效策略。例如,将参数调整为 code=1234%0a 允许通过输入的变体扩展尝试,例如在电子邮件地址中添加换行符以绕过尝试限制。

Manipulating IP Origin via Headers

修改头部以改变感知的 IP 来源可以帮助规避基于 IP 的速率限制。可以调整 X-Originating-IPX-Forwarded-ForX-Remote-IPX-Remote-AddrX-Client-IPX-HostX-Forwared-Host 等头部,包括使用多个 X-Forwarded-For 实例,以模拟来自不同 IP 的请求。

bash
X-Originating-IP: 127.0.0.1
X-Forwarded-For: 127.0.0.1
X-Remote-IP: 127.0.0.1
X-Remote-Addr: 127.0.0.1
X-Client-IP: 127.0.0.1
X-Host: 127.0.0.1
X-Forwared-Host: 127.0.0.1

# Double X-Forwarded-For header example
X-Forwarded-For:
X-Forwarded-For: 127.0.0.1

更改其他头部

建议更改其他请求头,例如用户代理和 cookies,因为这些也可以用于识别和跟踪请求模式。更改这些头部可以防止识别和跟踪请求者的活动。

利用 API 网关行为

某些 API 网关被配置为根据端点和参数的组合应用速率限制。通过改变参数值或向请求中添加不重要的参数,可以绕过网关的速率限制逻辑,使每个请求看起来都是唯一的。例如 /resetpwd?someparam=1

在每次尝试之前登录到您的帐户

在每次尝试或每组尝试之前登录到帐户,可能会重置速率限制计数器。这在测试登录功能时尤其有用。利用像 Burp Suite 这样的工具中的 Pitchfork 攻击,在每几次尝试中轮换凭据,并确保标记跟随重定向,可以有效地重启速率限制计数器。

利用代理网络

部署一个代理网络,将请求分散到多个 IP 地址,可以有效绕过基于 IP 的速率限制。通过通过各种代理路由流量,每个请求看起来都来自不同的来源,从而稀释速率限制的有效性。

在不同帐户或会话之间分散攻击

如果目标系统在每个帐户或每个会话的基础上应用速率限制,将攻击或测试分散到多个帐户或会话可以帮助避免检测。这种方法需要管理多个身份或会话令牌,但可以有效地分散负载,以保持在允许的限制内。

继续尝试

请注意,即使存在速率限制,您也应该尝试查看在发送有效 OTP 时响应是否不同。在 这篇文章 中,漏洞猎人发现,即使在 20 次不成功尝试后触发速率限制并以 401 响应,如果发送了有效的 OTP,则会收到 200 响应。

tip

学习和实践 AWS 黑客技术:HackTricks Training AWS Red Team Expert (ARTE)
学习和实践 GCP 黑客技术:HackTricks Training GCP Red Team Expert (GRTE)

支持 HackTricks