JSONハイジャック

画像 この記事では、「 __defineSetter__ 」メソッドを使用してJSONを介して送信されたデータをインターセプトする方法について説明します。JSONサイトはこの脆弱性の影響を受けます。 被害者の要件:ブラウザはJavaScriptをサポートし、有効になっています。__defineSetter__メソッドがサポートされています。



したがって、機密データをJSONに転送しない場合、またはPOST要求にのみ送信する場合、サイトはこの脆弱性の影響を特に受けません。 この記事の著者はVisioで図を作成しましたが、そのプロセスを示すために始めましょう。



最初の図では、被害者が脆弱なサイトにログインし、ブラウザによって慎重に保存されたCookieを受信する方法がわかります。誰もがその理由を知っています。



画像








その後、遅かれ早かれ、悪党は被害者にメッセージを送り(ハムスターがピアノを弾いているビデオへのリンクを添付)します。



画像








しかし、実際には、リンクは悪者のサイトにつながります。 したがって、何が起こるか:被害者のブラウザは悪者のサイトからページをロードします。



画像






要求されたページには、 __ defineSetter__メソッドのオーバーライドと外部JavaScriptへのリンクを持つJavaScriptが含まれています。 ブラウザが外部JavaScriptにぶつかると、脆弱なサイトに識別データを含むGETリクエストを送信し、機密データを含むJSONを返します。



画像






今、悪者は機密データにアクセスできます。



All Articles