当前版本的jQuery,过滤用户输入数据所使用的正则表达式存在缺陷,导致产生XSS 漏洞。
1、起因
收到第三方的渗透测试报告说:当前JQuery版本(jquery-1.9.1)有jQuery低版本存在跨站风险如下图:
由测试结果切图可以看出引起XSS漏洞的命令: $("<img src=x onerror=alert(1)>")
2、修复验证过程:
写一个简单的测试页面,如下内容
<html>
<head>
<title>test</title>
<script src="https://code.jquery.com/jquery-1.9.1.min.js"></script>
</head>
<body>
<div>
Hello,欢迎测试JQuery,XSS 漏洞
</div>
</body>
</html>
将JQuery换成当前最新版本(jquery-3.6.0),结果一样。
3、结论 (3.6.0版本也未能修复JQ产生的XSS漏洞)
1)、升级JQuery最新版本也未必能修复XSS漏洞。
2)、$("<img src=x onerror=alert(1)>") 是不是正常的命令导致正则表达式未能检测到?
暂无找到方法修复这个命令的XSS漏洞,有的话欢迎留言。