Hello there, ('ω')ノ
パスワードを忘れた場合のレート制限なしで500ドルを。
脆弱性:
レート制限の欠如
パスワードリセットの欠陥
記事:
https://bugbountyhunter.medium.com/500-for-no-rate-limit-on-forgot-password-page-d534d1d750db
レート制限について:
レート制限アルゴリズムは、セッションキャッシュ内の情報に基づいて。
ユーザセッション(またはIPアドレス)を制限する必要があるかどうかを。
確認するために使用されて。
クライアントが特定の時間枠内にあまりにも多くのリクエストを行った場合は。
HTTPサーバは、ステータスコード429:Too ManyRequestsで応答できて。
問題を再現する手順:
ステップ1
今回のターゲットのwww.example.comへアクセスして。
メールアドレスを入力して、『パスワードを忘れた』をクリックして。
ステップ2
このリクエストをBurpで、インターセプトして。
リクエストで自分のIDを見つけるまでForwardして。
(“email”;”your email here”)
POST /api/v1/users/password/remind HTTP/1.1
Host: example.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:71.0) Gecko/20100101 Firefox/71.0
Accept: application/json
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: https://example.com/lost-password
Content-Type: application/json
X-CSRF-TOKEN: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Origin: https://example.com
Content-Length: 33
Connection: close
Cookie: __cfduid=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
(“email”;”your email here”)
ステップ3
BurpのIntruderに特に効果はないですが任意のペイロードを100回繰り返すような。
リクエストを送信すると。
Accept-Language: en-US,en;q=0.$5$
ステップ4
受信トレイに200okのステータスコードと100以上のメールが届くのが確認できて。
大量のメールが発生していることを確認するように。
これは、ユーザへの電子メール爆撃はビジネスへに悪影響を及ぼすことに。
Best regards, (^^ゞ