JSONハイジャック

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

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

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

画像


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

画像


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

画像

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

画像

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

Source: https://habr.com/ru/post/J63176/


All Articles