Shikata Ga Nai

Private? There is no such things.

Story of Account Takeover : Using Social Login with Mass Assignment Vulnerability to hack accounts !を訳してみた

Hello there, ('ω')ノ

 

ソーシャルログインと大量割り当ての脆弱性を使用してアカウントのハッキングを。

 

脆弱性:

 一括割り当て

 アカウントの乗っ取り

 

記事:

 https://kaif0x01.medium.com/story-of-account-takeover-using-social-login-with-mass-assignment-vulnerability-to-hack-accounts-21e4d5856f5e

 

プログラム名をREDACTEDとすると。

このプログラムにはモバイルアプリが含まれているので。

Playストアから直接アプリをダウンロードしてテストを開始することに。

ターゲットアプリには、FacebookでログインやGoogleでログインなどの。

ソーシャルログインがあったので、この機能をチェックし始めることに。

アプリには、SSL Pinning(不正なSSL証明書を検知する)があったので。

fridaスクリプトでバイパスして、BurpSuiteを起動することに。

 https://frida.re/docs/home/

 

f:id:ThisIsOne:20210922144601p:plain

 

脆弱性の背景:

ターゲットアプリは、ユーザがメール、電話番号や。

ソーシャルログインチャネル(FacebookやGoogleなど)から。

サインアップできる金融アプリで。

Facebook機能を使用したサインアップには。

攻撃者が被害者の電話番号を知っているだけで被害者のアカウントを。

完全に乗っ取ることができる大量割り当ての脆弱性があって。


APIの一括割り当ての脆弱性とは:

一括割り当ての脆弱性は、ユーザがアプリケーションで。

意図されていないサーバ側の変数を初期化または上書きできる場合に発生して。

リクエストに追加のパラメータを含めるようにリクエストを手動で作成すると。

悪意のあるユーザがアプリケーションの機能に悪影響を与える可能性があって。


再現手順:

1.アプリのFacebookボタンでログインをクリックして。

2.Burp Suiteを使用してリクエストをインターセプトして。

3.Facebookでアプリを承認した後、HTTPリクエストが開始されて。

 

HTTPリクエスト:

    POST /signup/users/socialLogin HTTP/1.1
    Content-Type: application/json; charset=UTF-8
    Content-Length: 834
    Host: api.redacted.com
    Connection: close
    Accept-Encoding: gzip, deflate
    User-Agent: okhttp/4.2.1

{“profile_picture”:”http://graph.facebook.com/3061xxxxxxxxx/picture?type=large","emailId":"example@gmail.com","socialType":"FB","fname":"test","pincode":"","dob":"","mobile":"","city":"","gender":"","androidId":"3c91804d96d13669","deviceToken":"xxxx","appVersion":"1.0.0|10","country":"","socialId":"306199919","addressl2":"","lname":"Test"}

 

上記のHTTPリクエストには、一括割り当てに対して。

脆弱なmobileパラメータがあって。

 

4.mobileパラメータの値に被害者のアカウントの電話番号を入力して。

 リクエストを転送して。

5.これで、被害者のアカウントに攻撃者の電子メール(emailId)が添付されて。

6.するとユーザは、自分のメールアカウントを更新、削除することはできず。

 

Best regards, (^^ゞ