Hello there, ('ω')ノ
ソーシャルログインと大量割り当ての脆弱性を使用してアカウントのハッキングを。
脆弱性:
一括割り当て
アカウントの乗っ取り
記事:
プログラム名をREDACTEDとすると。
このプログラムにはモバイルアプリが含まれているので。
Playストアから直接アプリをダウンロードしてテストを開始することに。
ターゲットアプリには、FacebookでログインやGoogleでログインなどの。
ソーシャルログインがあったので、この機能をチェックし始めることに。
アプリには、SSL Pinning(不正なSSL証明書を検知する)があったので。
fridaスクリプトでバイパスして、BurpSuiteを起動することに。
脆弱性の背景:
ターゲットアプリは、ユーザがメール、電話番号や。
ソーシャルログインチャネル(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, (^^ゞ