hacktricks/src/pentesting-web/rate-limit-bypass.md

56 lines
3.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Rate Limit Bypass
{{#include ../banners/hacktricks-training.md}}
## 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-IP``X-Forwarded-For``X-Remote-IP``X-Remote-Addr``X-Client-IP``X-Host``X-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 时响应是否不同。在 [**这篇文章**](https://mokhansec.medium.com/the-2-200-ato-most-bug-hunters-overlooked-by-closing-intruder-too-soon-505f21d56732) 中,漏洞猎人发现,即使在 20 次不成功尝试后触发速率限制并以 401 响应,如果发送了有效的 OTP则会收到 200 响应。
{{#include ../banners/hacktricks-training.md}}