当前位置:   article > 正文

Jquery XSS漏洞(CVE-2020-11022)

cve-2020-11022

漏洞详情

jQuery是美国John Resig程序员的一套开源、跨浏览器的JavaScript库。 jQuery 大于或等于1.2至3.5.0的版本中存在跨站脚本漏洞,该漏洞源于WEB应用缺少对客户端数据的正确验证。即使执行sanitize处理,也仍会执行将来自不受信任来源的HTML传递给jQuery的DOM操作方法(即html()、.append()等),攻击者可利用该漏洞执行客户端代码。

漏洞影响

V 1.2.0 <= jquery < V 3.5.0

漏洞分析

在html()方法中,HTML字符串将作为参数传递到 $ .htmlPrefilter()方法进行处理。 $ .htmlPrefilter()方法用于替换自闭合标签,有点类似标签自动补全。比如将<span/> 替换为 <span></span>。

3.x版本之前使用的正则为:

rxhtmlTag =/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi
[...]
htmlPrefilter: function( html ) {
  return html.replace(rxhtmlTag, "<$1></$2>" );
}

3.x之后使用的正则为:

rxhtmlTag =/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi

因为这个特性可以构造适合jQuery3.x的payload如下:

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/695857
推荐阅读
  

闽ICP备14008679号