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

5.8 KiB
Raw Blame History

レート制限回避


Trickestを使用して、世界で最も高度なコミュニティツールによって強化されたワークフローを簡単に構築および自動化します。
今すぐアクセスを取得:

{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}

ゼロからヒーローまでのAWSハッキングを学ぶ htARTEHackTricks AWS Red Team Expert!

HackTricksをサポートする他の方法:

レート制限回避テクニック

類似エンドポイントの調査

/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-IPX-Forwarded-ForX-Remote-IPX-Remote-AddrX-Client-IPX-HostX-Forwared-Hostなどのヘッダーを調整し、異なるIPからのリクエストをシミュレートするためにX-Forwarded-Forの複数のインスタンスを使用することができます。

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ベースのレート制限を効果的にバイパスすることができます。さまざまなプロキシを介してトラフィックをルーティングすることで、各リクエストが異なるソースから発信されたものとして見え、レート制限の効果を薄めることができます。

攻撃を異なるアカウントやセッションに分割

対象システムがアカウントごとまたはセッションごとにレート制限を適用している場合、攻撃やテストを複数のアカウントやセッションに分散させることで検出を回避するのに役立ちます。このアプローチでは、複数のアイデンティティやセッショントークンを管理する必要がありますが、許容可能な制限内に留まるために負荷を分散するのに効果的です。