CORS Misconfiguration -> PII Leak から学ぶ

 

ソース:

medium.com

脆弱性:CORS

 

訳:

タイトルにあるように、これは名前を付けたくないプログラムの CORS (Cross-Origin Resource Sharing) 設定ミスでした。

Web サイトに移動し、まずメイン ページで基本的な調査を行いました。
実際にはあまり見つかりませんでしたが、ログインおよびサインアップ ポータルがあることがわかりました。
後のテストのためにこれをメモしておいてください。
まずは、ウェブサイトでアカウントを作成しましょう。
ウェブサイトへのサインアップを行った後。
交通を遮断しましたが、特に目立ったものはありませんでした。
そこでユーザー情報を編集しようとしたところ、以下のような素敵なリクエストを見つけました。

 

リクエストとレスポンス

 

ご覧のとおり、これは PATCH リクエストを作成しており、レスポンスの中にaccess-control-allow-origin ヘッダーがあります。
そしてそれは次の値を示していました、 https://devportal.redacted.com
上記の記事を読んでいただければ、ここから PII が漏洩する可能性があるため、これは有益な情報です。

 

ここで、次の 2 つの質問に直面します。

  1. PATCH リクエストですが、GET は受け入れられますか?
  2. ヘッダー内に独自のドメインを含めることはできますか?

Web サーバーに送信するリクエストを編集するだけで、これを実行してテストでき。 ここでは Firefox 開発者ツールを使用しましたが、この種のバグを自分で試してみたい場合は、Burpsuite でも機能します。
リクエストとレスポンスを見て、分解してみましょう。

 

 

上のセクションにはテスト アカウントの詳細が表示され (一時的な電子メール アドレスであることを心配しないでください)、下半分には開発者ツールがあります。
左側の赤い下線でヘッダーを追加しました
Originそしてそれに の値を与え、これは私たちが試して回答に反映させたい Web サイトです。
開発者ツールの中央には、「GET」という単語に下線が引かれています。
これがリクエスト タイプであり、有効な応答が得られるかどうかを確認するためにリクエスト メソッドを PATCH から変更しました。
右側には、
https://test.com に反映されています access-control-allow-originヘッダ。 完璧! 次に、有効で機能する PoC を作成する必要があります。
これは Github で見つけることができますが、私が使用した PoC も以下に提供します。

 

<html>
<body>
<div id="demo">
<h1>CORS PoC by Boogsta</h1>
<h2>Please press below the button below to connect your accont to our service!</h2>
<button type="button" onclick="cors()">Exploit</button>
</div>
<script>
function cors() {
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById("demo").innerHTML = alert(this.responseText);
}
};
xhr.open("GET",
"https://devportal.redacted.com/", true);
xhr.withCredentials = true;
xhr.send();
}
</script>
</body>
</html>

 

どこに書いてあるのか https://devportal.redacted.comもちろん、ここにウェブサイトのドメインを置きます。
これですべてのセットアップが完了しました。
ローカルでホストしてみましょう。

 

 

ここで「Exploit」を押すと、次のリクエストが表示されます。

 

 

これで、CORS バグの悪用に成功しました。ここから報告し、重複したものを入手しました :(
ただし! 重要なのは経験であり、それが有効な発見であることがわかれば、常に次のプログラムやバグに取り組むきっかけとなるはずです。

 

これによる影響は、攻撃者が Web サイトから PII (個人識別情報) を漏洩できることで。 これは私の PoC とまったく同じようには見えませんが、より現実的で信頼できるものになり、ポップアップも表示されなくなります。
攻撃者は、後で使用するためにこのデータを何らかのサーバーに送信する可能性が高くなります。

 

ほなほな。