Javascript XSS在IE中如何绕过?

Javascript XSS在IE中如何绕过?,javascript,internet-explorer-8,filter,xss,Javascript,Internet Explorer 8,Filter,Xss,既然IE8有一个XSS过滤器,那么真的没有办法使用这个浏览器利用XSS漏洞吗?例如,一个偷饼干的人对我的网站不再构成威胁了 (如果您认为这是不正确的,并且您的过滤器中可能存在缺陷,我想知道)IE8中的XSS过滤器肯定会被打败。这取决于页面中的XSS Vuln是否可能。 例如,您可以使用奇怪的编码或双XSS攻击。 编辑: 这是一个可以通过IE8过滤器的XSS攻击的实际例子: 有几种类型的XSS攻击;IE XSS过滤器旨在阻止最常见形式的反射XSS攻击。有关过滤器的作用的背景信息,请参见 您绝对应该

既然IE8有一个XSS过滤器,那么真的没有办法使用这个浏览器利用XSS漏洞吗?例如,一个偷饼干的人对我的网站不再构成威胁了


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

IE8中的XSS过滤器肯定会被打败。这取决于页面中的XSS Vuln是否可能。 例如,您可以使用奇怪的编码或双XSS攻击。 编辑: 这是一个可以通过IE8过滤器的XSS攻击的实际例子:

有几种类型的XSS攻击;IE XSS过滤器旨在阻止最常见形式的反射XSS攻击。有关过滤器的作用的背景信息,请参见


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

Ie basic XSS filter通过首先检查生成请求的位置来处理传出请求。我的意思是,对于反射XSS,请求可能是由攻击者系统生成的,以便放入恶意脚本。因此,推而广之 查看来自同一域的请求毫无意义,因为这将浪费资源

然而IE做出了一个错误的假设,XSS可以来自任何地方 由于这种错误的假设,反射性XSS漏洞可能会被利用。IE考虑了“位置:”HTTP头重定向以及 元刷新HTML标记。但是,在攻击中还可以使用其他重定向方法

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

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

上面的链接可以来自任何地方,包括url和服务。XSS负载是“var”GET变量。PoC的这一部分已经过双url编码。有一个角括号“>”变为“%253E”。这种编码愚弄了服务器上的htmlspecialchars()和IE的过滤器。此编码的有效负载不受对htmlspecialchars()的调用的影响,其行为方式与其不存在时相同。

OWASP有一个规避备忘单。浏览器黑客手册也有一些技巧,但它的%标签技巧似乎失败了。
<?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