禁用urlbar过滤器 - Firefox 28

时间:2015-04-28 09:21:55

标签: javascript security firefox browser xss

我想在Firefox上演示DOM“基于本地”的跨站点脚本。 28。

我在index.php上有这个脚本

<SCRIPT> var pos=document.URL.indexOf("jmeno=")+6; document.write(document.URL.substring(pos,document.URL.length)); </SCRIPT>

我想通过打开网址来运行XSS

www.mydomain.com/index.php?jmeno=<script>alert(document.cookie)</script>

在IE11中,我只是在安全性设置和脚本工​​作中禁用XSS过滤器。

在Firefox中进行了改进,禁用此解决方案的解决方案:browser.urlbar.filter.javascript中的about:config。该解决方案无效。脚本总是被转义。

有没有解决方法如何在Firefox中使用此脚本?

1 个答案:

答案 0 :(得分:1)

browser.urlbar.filter.javascript不会尝试从输入的网址中过滤数据,它不是IE误导的反XSS过滤器的类比。它只是在历史查询中显示javascript:个网址,而且与此无关。

您的示例网址在任何浏览器中都不适用于我,因为字符<>无法包含在网址中。当您输入时,浏览器会自动将它们更正为URL编码版本%3C%3E。因此,当您访问location.href时,您会获得一个带有%编码尖括号的网址。使用天真的字符串切片处理它会使编码版本留在那里,因此标记不会解析。

在提取的子字符串上调用decodeURIComponent()会使示例容易受到攻击(!)。 (虽然通常可靠地提取查询参数有点复杂。)