Hello there, ('ω')ノ
メール認証バイパスの珍しい話を。
脆弱性:
メール認証バイパス
ブルートフォース
レート制限バイパス
記事:
https://sagarsajeev.medium.com/an-unusual-tale-of-email-verification-bypass-dcf884d544eb
今回は、メール認証バイパスをどのように報告したかを。
ドメインを「https://www.redacted.com/account/login」とすると。
attack@email.com としてアカウントにログインして。
メールオプションの変更に移動し、メールを。
attacker@email.comからvictim@email.comに変更すると。
4 桁の OTP がvictim@email.com に送信され、変更が確認 (検証) されて。
レート制限は設定されていないので、ブルートフォーシングによって。
正しい OTP が見つかって。
しかし、正しい OTP を提出すると、ページに間違った OTP が表示されて。
正しい OTP が Web サイトによって拒否された理由がわからず。
すべてのリクエストをリピータの OTP ブルートフォース リクエストして。
手動で検査することに。
試行錯誤の 2 時間後、リクエストの間に埋め込まれた「sec」と呼ばれる。
隠しパラメータに出くわして。
リピータでは120回目のリクエスト以降にしか現れない、かなり特殊なパラメータで。
それを 3 回確認しましたが、実際には 120 回目のリクエストの後でしか。
表示されず。
また、120 回目のリクエストの後、ステップ値 1 ずつ増加していくことに。
>120 番目のリクエストの「sec」値は 1
>121 番目のリクエストの「sec」値は 2
>122 番目のリクエストの「sec」値は 3
>123 番目のリクエストの「sec」値は 4
> など
すると、120 回目のリクエスト以降のすべての試行で。
別のサブドメインへの 302 リダイレクトが発生することにも気付いて。
ターゲットが Web サイトのトラフィックを減らすため。
またはブルートフォース攻撃を防ぐために選択した方法のように感じて。
パラメータはクライアント側に大きく依存していたため。
120 番目のリクエストから「sec」パラメータを削除するだけで。
後続のすべてのリクエストからパラメータが削除され。
上記の OTP ブルートフォーシングをもう一度試し。
正しい OTP を取得して入力すると。
電子メールは、attacker@email.com からvictim@email.com に変更されて。
影響:
この問題は、電子メールの検証をバイパスするために使用でき。
攻撃者は、その電子メール アカウントにアクセスできなくても。
任意の人の代わりにアカウントを作成できて。
Best regards, (^^ゞ