Shikata Ga Nai

Private? There is no such things.

Bypassing OTP via reset passwordを訳してみた

Hello there, ('ω')ノ

 

リセットパスワードによるOTPのバイパスを。

 

脆弱性:

 OTPバイパス

 

記事:

 https://infosecwriteups.com/bypassing-otp-via-reset-password-f004a29020c

 

ツール:

 Burp Suite

 

今回は、電子メールアドレスを介してパスワードをリセットすることにより。

ワンタイムパスワードをバイパスすることができた方法を説明することに。

また、このプライベートプログラムtarget.comと呼ぶことに。


説明を続ける前に、この脆弱性は、APIを介したパスワードのリセット方法の。

誤った適用が原因で発生したことを考慮する必要があって。

これにより、応答でユーザのライブトークンが漏洩して。

このターゲットで偵察を行っている間に。

例外なくすべての関数が1つのAPIに直接関連していることに気づいて。

 

このターゲットは、そのAPIのインターフェースだったので。
関数のバグをスキャンすることから始めるのは理にかなっていて。

そして、アカウントの設定を確認している間に。

電話番号でOTPオプションを見つけたので。

電源を入れてログアウトすることに。

 

直接ログインして、レート制限のバイパスやOTPに関連するその他のバグを。

確認することにしたものの、API自体にレート制限の実装があって。

それを回避することはできず。

 

f:id:ThisIsOne:20211101150450p:plain

 

メールアドレスでパスワードをリセットしてOTPをバイパスできるかどうかも。

確認したものの、アプリは新しいパスワードで再度サインインして。

SMS経由で送信された6桁のOTPコードを挿入するように要求してくるので。

それを回避することができず。

 

それで、すべての要求とその応答をチェックすることに。

Burp Suiteのインターセプトをオンにして。

パスワードのリセットボタンの応答を確認することから始めたところ。

何も面白くなくて。

 

アカウントのメールアドレスを開いて。

パスワードのリセットリンクを確認しても。

リンク内のトークンは複雑で、ブルートフォース攻撃はできないので。

リンクを開いて新しいパスワードを挿入して。

パスワードの変更ボタンを押して、応答を確認してみると。

パスワードのリセットAPIメソッドがアカウントに新しいライブトークンを設定して。

応答でトークンをリークしていることを確認できて。


このライブトークンによって、アプリのインターフェースにサインインしなくても。

APIを介してアカウントのすべてのメソッドを使用できて。

 

f:id:ThisIsOne:20211101150552p:plain

 

しかしながら、サインインせずにOTPを停止する方法を見つけることにして。

アカ​​ウント設定を確認した後に。

OTPを停止するAPIリクエスト(Disable OTP API)を見つけることができたので。

リピータにリクエストを入力して。

APIのライブトークンを介してOTPを停止することができると。

アプリのインターフェイスにログインできて。

下記が、Disable OTP APIのリクエストで。

 

f:id:ThisIsOne:20211101150625p:plain


概要:

メールアドレスでパスワードをリセットすることで。

OTPをバイパスすることができて。

パスワードのリセットメソッドの応答でリークが発生するAPIライブトークンを。

介して、アカウント内のすべてのメソッドを使用できたことを。

考慮する必要があって。

しかし、OTPを停止するために方法を見つけることを好んだので。

OTPAPIリクエストを無効にして停止して。

そして、OTPコードを挿入することなくアカウントを開くことができて。

 

Best regards, (^^ゞ