Hello there, ('ω')ノ
同じエンドポイントを 2 回悪用できた方法 を。
脆弱性:
XSS
オープンリダイレクト
記事:
同じエンドポイントを 2 回悪用できた方法
(10 個のサブドメインでの複数の xss とオープン リダイレクト) について
最近発見したことを共有したいと。
ある日、LinkedIn フィードをチェックしていたら、友人の 1 人が
このサイトから報酬を得ていることに気づき。
友人が脆弱性を報告するのを忘れたら、運試しをしようかと考えて。
ドメインをターゲットにすることはなく。
常にサブドメインをターゲットにして。
基本的な偵察には dnsdumpster.com を使用して。
dnsdumpster.com を開いてドメイン名 (例: sanity.io ) を入力し、
検索ボタンを押し。
数秒で、sanity.io のサブドメインを取得して。
基本的な偵察に最適なツールであり、応答時間が非常に速く。
次に、「api.sanity.io」をターゲットにすることに。
時間を無駄にすることなく「api.sanity.io」を開くと、
すぐに次の場所にリダイレクトされて。
https://accounts.sanity.io/login/redirectTo=https%3A%2F%2Faccounts.sanity.io%2Fapi %2Fv1%2Foauth%2Fauthorize%3Fresponse_type%3Dcode%26redirect_uri%3Dhttps%253A%252F%252Fapi.sanity.io%252Fv1%252Fauth%252Fcallback%252Fsanity%26state%3Du3vRNiBfJA4DvEwolSJbPKYF%26client_ id%3Doc-3I2pHriWuK29
サイトがログイン ページにリダイレクトして。
しかし、「api.sanity.io」をターゲットにすることにして。
そこで、今回は再び「api.sanity.io」を開いて、すぐにメモ帳にURLをコピーして。
https://api.sanity.io/v1/auth/whitelist?redirectTo=https://accounts.sanity.io/login/redirectTo=https%3A%2F%2Faccounts.sanity.io%2Fapi%2Fv1%2Foauth% 2Fauthorize%3Fresponse_type%3Dcode%26redirect_uri%3Dhttps%253A%252F%252Fapi.sanity.io%252Fv1%252Fauth%252Fcallback%252Fsanity%26state%3Du3vRNiBfJA4DvEwolSJbPKYF%26client_id%3Doc-3I2pHりWuK29
それから「?redirectTo=」を見て興奮し。
オープン リダイレクトをテストするという最初の考えが頭に浮かび。
「?redirectTo=」の後に http://evil.com を入力しましたが、
何も起こらず、404 エラーが表示され。
それで、今何をすべきかを考えていましたが、そこで XSS をテストしては
どうかという考えが 2 番目に頭に浮かび。
「?redirectTo=」の後に、いくつかの基本的なペイロードを入力して。
(例: img & svg alter (1) )
しかし、何もうまくいかず。
次に、このペイロードを入力しているときにバックグラウンドで
何が起こっているかを確認するために「ソースコード」タブを開いたのですが、
ペイロードが反映されず。
そこにXSSが存在していないようで。
ソース コードをもう一度見ていて、突然 braze.com で最近発見したことを思い出し。
同じ状況の入力はソースコードには反映されませんが、
ページの要素を検査すると反映されて。
そのエラー ページの要素を検査し、入力を検索し。
反映されていますが、XSS が機能しておらず。
次に、xss をもう一度試してみましたが、
今回は、alertではなく「prompt」ペイロードを入力して。
URL: https://api.sanity.io/v1/auth/whitelist?redirectTo=XSS_Payload
そして、XSS がどのようなトリガーになるかはご存知で。
アラートがブロックされているため、XSS がトリガされないことに気づき。
xss を入手したので、このサイトでもっとバグを探してみようかと考えて。
再び偵察プロセス:
サブドメインを見つけるためにkokpyを使用しましたが、しばらくしてから
サブドメインのサブドメインを取得して。
例えば:
https://1goh1ap5.api.sanity.io/
https://v475t82f.api.sanity.io/
https://w7l5ei8i.api.sanity.io/
https://wb68e9ma.api.sanity.io/
そして、このサブドメインも https://accounts.sanity.io/login 」にリダイレクトし。
xss ペイロードを「? redirectTO=」に再度入力したところ、XSS がトリガされて。
https://1goh1ap5.api.sanity.io/v1/auth/whitelist?redirectTo=XSS_Payload
sanity.io で複数の xss を見つけて。
この XSS では 10 個のサブドメインが影響を受けたので報告して。
再び「api.sanity.io」を開いたのですが、今度はどのページにもリダイレクトされず。
しかし、脆弱な URL を再度開いても、ポップアップやエラーは表示されず。
例えば、https://api.sanity.io/v1/auth/whitelist?redirectTo=
今回は「ログインボタン」を表示するページで。
そしてなんと、「?redirectTO=」の後に evil.com に入り、
「ログイン ボタン」をクリックすると、 evil.com にリダイレクトされて。
そして今回はevil.comではなくxss paylodに入り。
そして「ログインボタン」を押すと、XSSが再びトリガされて。
上のセクションを読んだとおり、10 個のサブドメインで
複数の反映された XSS が見つかり。
繰り返しますが、すべてのサブドメインがこの問題に対して脆弱で。
Best regards, (^^ゞ