Hello there, ('ω')ノ
アカウントの乗っ取り-「null」での喫煙
脆弱性:
アカウントの乗っ取り
認証の欠陥
記事:
https://shahjerry33.medium.com/account-takeover-smoking-with-null-e43df2c3bb41
今回は、JSON null値を使用した興味深いアカウントの乗っ取りを見つけて。
概要 :
通常のサインアップオプションがあるプログラムを探していて。
アプリケーションにログインしている間、2つの異なるオプションがあって。
パスワードでログイン
トークンでログイン
そこで、「トークンを使用してログイン」を選択して。
通常の動作として、トークンがメールに送信されて。
最初はパラメータの汚染を試しましたが失敗したため。
JSONデータ型のいくつかを読んだ後に。
JSONデータ型のnull値について知るようになって。
JSONデータ型のnull値とは。
そこで、ログインを成功させるためにトークンを入力する必要がある。
ログインリクエストをキャプチャし、それをburprepeaterに送信して。
次に、tokenパラメータの値をnullに変更するだけで、ログインに成功して。
support@comany.comのアカウントを引き継ぐことを考えたので。
最初はサポートメールを使用してサインアップしようとしましたが。
いつものようにアカウントはすでに作成されているので、ログイン機能に移動し。
トークンのオプションを選択し、Burp Suiteを使用してリクエストをキャプチャして。
リピータに送信して、トークンパラメータにnull値を入力すると。
ログインに成功して。
この脆弱性をどのように見つけたか。
1.サインアップページに行き、自分を登録して。
下記が、サインアップリクエストで。
2.次に、トークンが必要なログインページのリクエストをキャプチャし。
トークンパラメータの値をnullに変更して。
{“token”:null}
ログインリクエストからログインに成功したことがわかって。
3.support@company.comの電子メールを確認しましたが。
すでに登録されているため、[トークンを使用してログイン]オプションを選択し。
会社のサポートアカウントを引き継いでアカウントの乗っ取りができて。
覚えておくべきポイント:
・csrfトークンが渡されてそれをバイパスするインジェクションnull値を。
試すことができて。
・ログインにOTPが必要な場合は、null値の挿入を試すことができて。
・2FAが必要な場合はnull値の注入を試すことができて。
Best regards, (^^ゞ