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

62 lines
4.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.

# 绕过速率限制
<figure><img src="../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
\
使用[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)轻松构建和**自动化工作流程**,使用世界上**最先进**的社区工具。\
立即获取访问权限:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
<details>
<summary><strong>从零开始学习AWS黑客技术成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTEHackTricks AWS Red Team Expert</strong></a><strong></strong></summary>
支持HackTricks的其他方式
* 如果您想在HackTricks中看到您的**公司广告**或**下载PDF格式的HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
* 获取[**官方PEASS & HackTricks周边产品**](https://peass.creator-spring.com)
* 探索[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们的独家[NFTs](https://opensea.io/collection/the-peass-family)系列
* **加入** 💬 [**Discord群**](https://discord.gg/hRep4RUj7f) 或 [**电报群**](https://t.me/peass) 或在**Twitter**上关注我 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**。**
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
</details>
## 绕过速率限制技术
### 探索类似的端点
应尝试对目标端点的变体执行暴力攻击,例如`/api/v3/sign-up`,包括`/Sing-up``/SignUp``/singup``/api/v1/sign-up``/api/sign-up`等替代选项。
### 在代码或参数中插入空白字符
在代码或参数中插入空白字节,如`%00``%0d%0a``%0d``%0a``%09``%0C``%20`,可以是一种有用的策略。例如,将参数调整为`code=1234%0a`可以通过输入的变化来延长尝试次数,例如向电子邮件地址添加换行符以绕过尝试限制。
### 通过标头操纵IP来源
修改标头以更改感知的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
```
### 更改其他标头
建议更改其他请求标头如用户代理和Cookie因为这些也可以用于识别和跟踪请求模式。更改这些标头可以防止识别和跟踪请求者的活动。
### 利用 API 网关行为
一些 API 网关配置为基于端点和参数的组合应用速率限制。通过改变参数值或向请求添加非重要参数,可以绕过网关的速率限制逻辑,使每个请求看起来是独一无二的。
例如 `/resetpwd?someparam=1`
### 在每次尝试之前登录到您的帐户
在每次尝试之前登录到一个帐户,或每组尝试之前,可能会重置速率限制计数器。这在测试登录功能时特别有用。利用类似 Burp Suite 中的 Pitchfork 攻击工具,每隔几次尝试轮换凭据,并确保标记了跟随重定向,可以有效地重新启动速率限制计数器。
### 利用代理网络
部署一个代理网络以将请求分布到多个 IP 地址可以有效地绕过基于 IP 的速率限制。通过通过各种代理路由流量,每个请求看起来来自不同的源头,从而削弱速率限制的效果。
### 将攻击分散到不同帐户或会话中
如果目标系统根据每个帐户或每个会话应用速率限制,将攻击或测试分散到多个帐户或会话中有助于避免检测。这种方法需要管理多个身份或会话令牌,但可以有效地分发负载以保持在允许的限制范围内。