2014-01-26 114 views
0

我正在尝试做一个跨框架脚本攻击PoC(https://www.owasp.org/index.php/Cross_Frame_Scripting)在我的工作显示这种攻击对任何版本的IE浏览器有多危险。 通过在IE8或更新版本上使用X-FRAME-OPTIONS: deny标头,可以轻松防止此攻击。但是,如果每个开发包括所有Web服务器响应中的头部,这将是非常好的。 使用下面的代码,我可以看到带有键码的警告窗口,但是在目标页面上的窗体的情况下,我看不到在窗体内按下的键的字母。框架onkeydown反馈

<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> 

第一个代码块中是否存在缺失的内容? 谢谢!

回答

0

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

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

+1

点击劫持怎么办?当然,他们的攻击面很小(只需点击鼠标就能触发有意义的状态变化的页面),但它们仍然与XSS截然不同。 – Aurand

+0

我同意你的看法,但这是我的观点:点击顶起是点击顶起,我不会称之为跨帧脚本。 XFS似乎混淆了几种不同类型的攻击之间的水域,而漏洞只属于一个类别(xss,浏览器错误或点击顶点)。我同意添加标题是一个好主意,尽管这可以在Web服务器级而不是应用程序完成。 – SilverlightFox

+0

谢谢@SilverlightFox!我使用IE11测试了第一个代码,并且我可以看到带有按键的HTML代码的警报窗口。我可以使用ajax发出请求并将密钥代码发送到恶意站点。问题在于我无法在输入框中看到相应的字母,这意味着任何用户都会认为网站存在问题,因为他/她无法看到他们正在输入的内容。 –