Hello there, ('ω')ノ
Websocketを介したIDORにより、任意のユーザアカウントの乗っ取りを。
脆弱性:
IDOR
記事:
https://mokhansec.medium.com/idor-via-websockets-allow-me-to-takeover-any-users-account-23460dacdeab
今回は、全ユーザアカウントを引き継ぐことを可能にする発見を共有することに。
これはプライベートプログラムであり。
ターゲットに関する情報を開示する許可がないため、example.comと呼ぶことに。
プログラムの機能についての基本的な考え方を。
これは、チームを作成できるオンライン会議プラットフォームで。
ユーザを招待したり、ユーザをフォローしたり。
管理者や一般ユーザを許可したりできて。
ここで、Burp Suiteを起動し、名前を変更する方法を確認し始めることに。
まずは、メール機能が機能してX-tokenヘッダがあることがわかって。
これはJWTトークンであり、JWTトークンが存在するかどうかはご存知のとおり。
CSRFを見つけることはほとんど不可能で。
少なくともこのウェブサイトでは。
トークンを削除して情報を変更しようとしましたが。
どのWebサイトからも401が提供されず。
今回はすべての要求と応答を確認していて。
POSTリクエストの後にサインアップをクリックすると。
UUIDと電子メール、ユーザ名などを含む1つのWebSocketリクエストが。
送信されることがわかって。
UUIDを最初のアカウント(アカウントA)UUIDに変更しようとしましたが。
エラーが発生して。
メールは既に存在していたので。
これで、Eメールを提供するWebサイトにエラーが存在する理由がわかって。
ユーザBのアカウントはすでに作成されており。
同じメールアドレスを使用できないためで。
UUIDをアカウントAのUUIDに変更し、電子メールを変更して応答がありませんが。
最初のアカウント(アカウントA)に移動して。
ログアウトしたページをリロードして。
すぐに(アカウントAの電子メールで)再度ログインしようとしましたが。
エラーが発生して。
(メールを変更した後、ウェブサイトはユーザをログアウトして再度ログインして。
アカウントAのメールを正常に変更したことを確認できて。
ご存知のとおり、アカウントAのパスワードは既に知っていますが。
アカウントAを管理しているため
パスワードのリセットリンクをリクエストできて。)
これらを理解してから新しい電子メールでログインすると。
これで、アカウントAのユーザに正常にログインして。
どのようにしてUUIDを見つけることができるかというと。
これはオンライン会議プラットフォームで。
ユーザのプロファイルに移動し、次のユーザボタンをクリックすると。
ユーザのUUIDを簡単にgrepできて。
取り除く:
常にログイン、サインアップ、および情報変更機能を試すと常に何かがあって。
このプログラムでは、40人以上のハッカーが招待されましたが。
ほとんどのハッカーはWebSocketを探していないと思うため。
彼らはそれを見つけられず。
バグがどこで見つかるかわからないので、すべてをチェックして。
UUIDを変更しましたが、メールアドレスを変更しなかったために。
エラーが発生したので、時間をかけてみて。
Best regards, (^^ゞ