【问题标题】:Frame onkeydown feedback帧 onkeydown 反馈
【发布时间】:2014-02-17 08:57:03
【问题描述】:

我正在尝试为跨框架脚本攻击 (https://www.owasp.org/index.php/Cross_Frame_Scripting) 做一个 PoC,以在我的工作中展示这种攻击对于任何版本的 IE 浏览器来说有多危险。 通过在 IE8 或更新版本上使用 X-FRAME-OPTIONS: deny 标头可以轻松防止这种攻击。但是,如果每个开发都在所有 Web 服务器响应中包含这样的标头,那就太好了。 使用下面的代码,我可以看到带有键码的警报窗口,但如果是目标页面上的表单,我看不到表单内按下的键的字母。

<script>
        window.onkeydown = function() {
                alert(window.event.keyCode);
        }
</script>
<frameset onload="this.focus()" onblur="this.focus()">
        <frame src="http://www.uol.com.br">
</frameset>

使用下面的简单代码,我可以按下键并同时查看(警报窗口和表单内的字母)。

<script>
        window.onkeydown = function() {
                alert(window.event.keyCode);
        }
</script>
<input>

第一个代码块有什么遗漏吗? 谢谢!

【问题讨论】:

    标签: javascript security internet-explorer frame xfs


    【解决方案1】:

    您的代码可能没有任何问题。 Cross Frame Scripting 不是一个真正的漏洞 - 它只是旧版本 Internet Explorer 中的一个漏洞,其中包含在父框架内触发 onkeypress 事件的错误,尽管域与通常受保护的域不匹配Same Origin Policy.

    其他跨帧脚本攻击只是 Cross Site Scripting 攻击,名称不同,因为它们涉及帧。

    【讨论】:

    • 点击劫持攻击怎么样?诚然,它们的攻击面很小(仅通过鼠标单击即可触发有意义的状态更改的页面),但它们仍然与 XSS 不同。
    • 我同意你的观点,但这就是我的观点:点击劫持就是点击劫持,我不会称之为跨框架脚本。 XFS 似乎混淆了几种不同类型的攻击之间的水域,而该漏洞仅属于一个类别(xss、浏览器错误或点击劫持)。我同意添加标头是个好主意,尽管这可以在 Web 服务器级别而不是应用程序级别完成。
    • 感谢@SilverlightFox!我使用 IE11 测试了第一个代码,我可以看到带有按键 html 代码的警报窗口。我可以使用 ajax 发出请求并将密钥代码发送到恶意站点。问题是我在输入框中看不到相应的字母,这意味着任何用户都会认为网站有问题,因为他/她看不到他们正在输入的内容。
    • @Ricardo.Iramar 这似乎是微软堵塞漏洞的方式。该事件在框架集页面中处理,防止输入到框架页面中的文本被抓取。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-09
    • 2011-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多