HTML/JavaScript window.opener 安全漏洞的风险?

信息安全 网页浏览器 javascript html
2021-08-28 18:06:00

我不知道你是否知道这个缺陷,但这里有一个基本的例子:

somepage.html(指向恶意.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>

恶意.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上的链接,同一页面将被恶意.html 修改。除了网络钓鱼,这个漏洞还有哪些风险?

此漏洞仅在 Chrome 和 Opera 上得到修补。

1个回答

这里没有安全漏洞。

如果somepage.html链接到malicious.html,它们都位于同一个域中打开的文档malicious.html通过window.opener.

同样somepage.html可以malicious.html通过为打开的文档创建句柄来访问:

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

与同源策略一致,允许同一域的不同文档相互交互。

但是,您的发现将令人担忧是否http://evilhost/malicious.html会设法访问 的 DOM http://somehost/somepage.html,从而导致UXSS漏洞。