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