Hello there, ('ω')ノ
IDスプーフィングを許可するレート制限バイパス
脆弱性:
レート制限バイパス
OTPバイパス
記事:
https://0xt4144t.medium.com/rate-limit-bypassing-allowing-identity-spoofing-789b2fe2efa8
ツール:
Burp Suite
HackerOneでプログラムを探しているときに。
アプリケーションの認証済みリクエストの調査を開始するために。
アカウントを登録する必要があって。
自分の電話番号で登録しようとしましたが。
特定の国の電話番号しか受け付けないため、自分の電話番号を使用できず。
電話番号とアカウントを取得するためだけに。
この時点から攻撃を開始する必要があって。
コントロール:
アカウントを登録するために、アプリケーションは登録された電話番号に。
SMSを送信して、検証機能に3つの制御を強制して。
1.1分あたり60リクエストのみを許可するレート制限制御。
2.レート制限を超えると、IPと電話はしばらくの間ブロックされて。
3.6桁の数字は、ブルートフォースをより困難にして。
そのため、許可される試行回数を増やして。
OTP値をユーザの電話に送信するために適用されるレート制限を。
バイパスすることに。
バイパス:
レート制限は、ブルートフォース、リソース枯渇攻撃や。
DDOS(分散型サービス拒否)などの攻撃を軽減するために。
API開発者によって設定されるAPIコントロールで。
ログイン、パスワードのリセット、アカウント検証、2要素認証、または。
メッセージやメールを送信するその他の機能などの認証機能を保護するために。
よく使用されて。
レスポンスからレート制限は、1分あたり60リクエストにのみ適用されて。
X-RateLimit-Limit: 60
バイパスするために試行されたさまざまな手法:
1.リクエストヘッダの値の一部をuser-agent、新しいCookieの取得や。
送信元IPアドレスの変更などの異なる値に変更しますがうまくいかず。
2.次に、下記の値で新しいヘッダを追加してリクエストを送信すると。
X-Forwarded-For:127.0.0.1
応答により、許可される試行の数が1分あたり。
60から6000に増加することが示されて。
X-RateLimit-Limit: 6000
この設定ミスは、おそらくローカルホストからのテスト目的のためで。
結果:
これにより、ユーザがまだ登録されていない場合は。
電話番号を使用してブルートフォースOTP値となりすましIDを使用できて。
Best regards, (^^ゞ