Shikata Ga Nai

Private? There is no such things.

Account Takeover - Smoking with ‘null’を訳してみた

Hello there, ('ω')ノ

 

アカウントの乗っ取り-「null」での喫煙

 

脆弱性:

 アカウントの乗っ取り

 認証の欠陥

 

記事:

 https://shahjerry33.medium.com/account-takeover-smoking-with-null-e43df2c3bb41

 

今回は、JSON null値を使用した興味深いアカウントの乗っ取りを見つけて。

 

概要 :

通常のサインアップオプションがあるプログラムを探していて。

アプリケーションにログインしている間、2つの異なるオプションがあって。

    パスワードでログイン
    トークンでログイン

 

そこで、「トークンを使用してログイン」を選択して。

通常の動作として、トークンがメールに送信されて。

最初はパラメータの汚染を試しましたが失敗したため。

JSONデータ型のいくつかを読んだ後に。

JSONデータ型のnull値について知るようになって。

 

JSONデータ型のnull値とは。

https://www.ibm.com/support/knowledgecenter/SS8JB4_19.x/com.ibm.wbpm.wid.integ.doc/topics/rjsonnullunsempprops.html

 

f:id:ThisIsOne:20220406085630p:plain

 

そこで、ログインを成功させるためにトークンを入力する必要がある。

ログインリクエストをキャプチャし、それをburprepeaterに送信して。

次に、tokenパラメータの値をnullに変更するだけで、ログインに成功して。

 

support@comany.comのアカウントを引き継ぐことを考えたので。

最初はサポートメールを使用してサインアップしようとしましたが。

いつものようにアカウントはすでに作成されているので、ログイン機能に移動し。

トークンのオプションを選択し、Burp Suiteを使用してリクエストをキャプチャして。

リピータに送信して、トークンパラメータにnull値を入力すると。

ログインに成功して。

 

この脆弱性をどのように見つけたか。

1.サインアップページに行き、自分を登録して。

 

f:id:ThisIsOne:20220406085541p:plain


下記が、サインアップリクエストで。

 

f:id:ThisIsOne:20220406085511p:plain

 

2.次に、トークンが必要なログインページのリクエストをキャプチャし。

 トークンパラメータの値をnullに変更して。

  {“token”:null}


ログインリクエストからログインに成功したことがわかって。

 

f:id:ThisIsOne:20220406085448p:plain

 

3.support@company.comの電子メールを確認しましたが。

 すでに登録されているため、[トークンを使用してログイン]オプションを選択し。

 会社のサポートアカウントを引き継いでアカウントの乗っ取りができて。

 

f:id:ThisIsOne:20220406085422p:plain

 

覚えておくべきポイント:

・csrfトークンが渡されてそれをバイパスするインジェクションnull値を。

 試すことができて。

・ログインにOTPが必要な場合は、null値の挿入を試すことができて。

・2FAが必要な場合はnull値の注入を試すことができて。

 

Best regards, (^^ゞ