IE中的XSS - 绕过的方式?

时间:2011-05-10 16:29:13

标签: javascript internet-explorer-8 filter xss

由于IE 8有一个XSS过滤器,是否真的没有办法利用这个浏览器利用XSS漏洞?例如,cookie窃取者不再对我的网站构成威胁吗?

(如果您认为这不正确并且您在过滤器中存在可能的缺陷,我想知道)

3 个答案:

答案 0 :(得分:4)

IE8中的XSS-Filter肯定会被打败。它取决于页面中的XSS-Vuln是否可行。 例如,您可以使用奇怪的编码或双XSS攻击。 编辑: 这是一个通过IE8-Filter的XSS-Attack的野外示例: XSS on esrb.org

答案 1 :(得分:3)

即基本的XSS过滤器通过首先检查请求的生成位置来处理传出请求。我的意思是反射XSS请求可能是从攻击者系统生成的,以便放置恶意脚本。所以通过扩展 查看源自同一域的请求应该没有意义,因为这会浪费资源。

然而,IE做出了错误的假设,XSS可以来自任何地方,也可以来自任何地方 由于这种不正确的假设,反射XSS漏洞可能会被利用。 IE已采用“位置:”HTTP标头重定向以及 元刷新HTML标签。但是,还有其他重定向方法可用于攻击。

现在让我们假设在我们的目标应用程序中有一个直接的XSS漏洞 xss.php文件:

<?php
//xss.php
print $_GET['var'];
?>

假设在redir.php文件中发现OWASP a10违规。

<?php
//redir.php
print “<script>”;
print “document.location='”.htmlspecialchars($_GET['redir'],ENT_QUOTES).”'”;
print “</script>”;
?>

此类应用程序的概念验证漏洞利用如下:

http://abc.com/redir.php?redir=http%3A%2F%2Fabc.com%2Fxss.php%3Fvar%3D%253Cscript
%253Ealert%2528%2Fxss%2F%2529%253C%2Fscript%253E

以上链接可能来自任何地方,包括网址收缩服务。 XSS有效负载是“var”GET变量。这部分PoC已被双重编码。对于有角度的括号“&gt;”变为“%253E”。这对服务器上的 htmlspecialchars()以及IE的过滤器进行了编码。此编码的有效负载不受对 htmlspecialchars()的调用的影响,并且在其缺失时的行为方式相同。

答案 2 :(得分:1)

有几种类型的XSS攻击; IE XSS过滤器旨在阻止最常见的反射XSS攻击形式。有关过滤器的用途,请参阅http://blogs.msdn.com/b/ie/archive/2008/07/02/ie8-security-part-iv-the-xss-filter.aspx

您绝对应该继续遵循XSS预防的最佳实践。