web-dev-qa-db-ja.com

HTML / JavaScript window.openerのセキュリティ欠陥のリスク?

この欠陥に気付いているかどうかはわかりませんが、基本的な例を次に示します。

somepage.htmlmalicious.htmlを指す):

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>Test</title>
</head>
<body>
    <p id="test">Some text<p>
    <p><a href="malicious.html">lien</a></p>

</body>
</html>

malicious.html:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>Test</title>
</head>
<body>

    <script>
        var win = window.opener;
        win.document.getElementById("test").innerHTML = "<strong> This will be written on somepage.html</strong>";                                                                                                                         
    </script>
</body>
</html>

somepage.htmlのリンクをクリックすると、この同じページがmalicious.htmlによって変更されます。フィッシングとは別に、この欠陥のリスクは何ですか?

この欠陥は、ChromeおよびOperaでのみパッチされています。

5
Mxsky

ここにはセキュリティバグはありません。

somepage.htmlmalicious.htmlにリンクしている場合、どちらも同じドメインにあります。開いたドキュメントmalicious.htmlwindow.openerを介して後方参照を持つことが予想される動作です。

同様に、somepage.htmlは、開いたドキュメントのハンドルを作成することでmalicious.htmlにアクセスできます。

var other = window.open('malicious.html')

これは Same-orignポリシー と一貫しており、同じドメインの異なるドキュメントが相互に対話できるようにします。

しかし、あなたの発見は、http://evilhost/malicious.htmlhttp://somehost/somepage.htmlのDOMにアクセスして、 [〜#〜] uxss [〜#〜] 脆弱性をもたらすかどうかに関係しています。

7
Arminius