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

62 lines
5.9 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で企業を宣伝**したい場合や**HackTricksをPDFでダウンロード**したい場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**公式PEASSHackTricksのグッズ**](https://peass.creator-spring.com)を入手する
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)に参加するか、[**telegramグループ**](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`などのヘッダーを調整して、異なる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
```
### 他のヘッダーの変更
ユーザーエージェントやクッキーなど、他のリクエストヘッダーを変更することが推奨されています。これらはリクエストのパターンを特定して追跡するために使用されることがあります。これらのヘッダーを変更することで、リクエスト元の活動を認識および追跡することを防ぐことができます。
### API Gatewayの動作を活用
一部のAPIゲートウェイは、エンドポイントとパラメータの組み合わせに基づいてレート制限を適用するように構成されています。パラメータ値を変化させたり、リクエストに無関係なパラメータを追加することで、ゲートウェイのレート制限ロジックを回避し、各リクエストを一意に見せることが可能です。
例:`/resetpwd?someparam=1`。
### 各試行前にアカウントにログインする
各試行前または一連の試行ごとにアカウントにログインすることで、レート制限カウンターをリセットすることができます。これは特にログイン機能をテストする際に役立ちます。Burp SuiteなどのツールでPitchfork攻撃を利用し、数回の試行ごとに資格情報を切り替え、リダイレクトをマークすることで、レート制限カウンターを効果的にリスタートできます。
### プロキシネットワークの活用
複数のIPアドレスにリクエストを分散するためにプロキシネットワークを展開することで、IPベースのレート制限を効果的にバイパスすることができます。さまざまなプロキシを介してトラフィックをルーティングすることで、各リクエストが異なるソースから発信されたものとして見え、レート制限の効果を薄めることができます。
### 攻撃を異なるアカウントやセッションに分割する
対象システムがアカウントごとまたはセッションごとにレート制限を適用している場合、攻撃やテストを複数のアカウントやセッションに分散させることで検出を回避できます。このアプローチでは、複数のアイデンティティやセッショントークンを管理する必要がありますが、許容可能な制限内に留まるために負荷を分散するのに効果的です。