安全生产:CVE-2020-11022/CVE-2020-11023漏洞解析

这篇具有很好参考价值的文章主要介绍了安全生产:CVE-2020-11022/CVE-2020-11023漏洞解析。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、前言

代码安全扫描阶段,前端资源审计发现jQuery版本过低导致生产系统存在CVE-2020-11022/CVE-2020-11023类风险。且影响范围:jQuery >= 1.0.3 < 3.5.0

该类风险为应用安全缺陷类DXSS攻击,攻击者可以利用该漏洞注入恶意脚本代码,并在受害者的浏览器上执行。将导致受害者的个人信息泄露、账户被劫持、会话被劫持等安全问题。科运中心给出的解决方案是升级jQuery版本至3.5.0或更高版本。

二、漏洞原理

见:jQuery最新xss漏洞分析——CVE-2020-11022/11023 - 云+社区 - 腾讯云 (tencent.com)

三、修复方案

  • 更新jQuery到3.5.0或更高版本;

  • 使用XSS清理工具清理用户输入的HTML,官方推荐;

这里使用方案一,升级jQuery版本至3.6.0(点击下载)。

3.1 升级jQuery

jQuery官网:Official jQuery Blog | New Wave Javascript

项目中目前使用的jQuery是1.x。升级版本根据官方指引使用migrate插件。

在进行版本升级时,官网给出的升级方法为:

Aside from the change to no longer ensure XHTML-compliant tags for you, we do not expect other compatibility issues when upgrading from a jQuery 3.0+ version. To upgrade, have a look at the new 3.5 Upgrade Guide. If you haven’t yet upgraded to jQuery 3+, first have a look at the 3.0 Upgrade Guide.

翻译出来即:

从jQuery
3.0+版本升级时,除了不再确保xhtml兼容的标签之外,我们预计不会出现其他兼容性问题。要升级至新版本,请查看新的3.5升级指南。如果你还没有升级到jQuery 3+,首先参考3.0升级指南。

3.0升级指南指出,

cve2020,安全生产,vue.js,前端,javascript
按照指引,先将1.x升级至1.x版本最新的1.12.3,并同时使用migrate 1.4.1插件,对警示信息指出的问题进行修改。然后再升级至当前最新的3.x版本,同时使用migrate 3.x插件。

可以理解为,jQuery 1.x升级至jQuery 3.x,需要借助migrate 1.x工具先将当前低版本jQuery追平至jQuery 1.x的最高版本;追评后,再借助migrate 3.x由jQuery 1.x最高版本追平至3.x。

下载 jQuery-migrate

  • jquery-migrate-1.4.1.min.js 压缩版本

  • jquery-migrate-1.4.1.js 未压缩版本

  • jquery-migrate-3.4.0.min.js 压缩版本

  • jquery-migrate-3.4.0.js 未压缩版本

上面的链接点进去得到的是压缩过后的内容:

cve2020,安全生产,vue.js,前端,javascript
将所有内容进行复制,在vsCode里面创建一个jquery-migrate-1.4.1.min.js的文件,将复制的代码粘贴进去,便得到了相应的依赖文件。

项目中使用

<script src="/js/jquery.min.js"></script>
<script src="/js/jquery-migrate-1.4.1.min.js"></script>

3.2 1.x 升级至 3.x 需要考虑的问题

3.2.1 table表格元素自动添加tbody

1.x版本
cve2020,安全生产,vue.js,前端,javascript
3.x版本
cve2020,安全生产,vue.js,前端,javascript

如上图所示,同样是往table里插入tr,jQuery 1.x 版本会自动添加tbody, 而jQuery 3.x不会,导致后来获取table.children()时出现不一致的结果。

3.2.2 方法变更

jquery由1.x升级到3.x后,$(window).load(function(){}),在jquery3.x以上成了 $(window).on('load',function(){}),且项目报错 Uncaught TypeError: e.indexOf is not a function

cve2020,安全生产,vue.js,前端,javascript

注意⚠️:.load(), .unload(), and .error()从jQuery 1.8开始就被废弃了,换成使用.on()函数来注册。

jQuery升级至高版本后,需要兼容旧代码,可以使用js兼容包jQuery MigratejQuery Migrate应用迁移辅助插件,是用于高级版本兼容低级版本辅助插件

引入jquery-migrate插件用于兼容低版本,同时也会显示低版本方法替换成新版本方法的方案。

<script src="/js/jquery-3.6.0.min.js" type="text/javascript"></script>
<script src="/js/jquery-migrate-3.3.2.min.js" type="text/javascript"></script>

查询了官方文档,废弃方法详参。

3.0以后的版本主要弃用的API有:.bind().unbind().delegate().undelegate()jquery.fx.interval

1.9和1.10版本弃用的API有jquery.support().context()

  1. jQuery 1.9不再支持$.browser$.browser.version,取而代之的是 $.support。在更新的 2.0 版本中,将不再支持 IE 6/7/8。

  2. $("#id").val(index); 之前1.8.2,当index不存在时会默认选取第一个,升级3.3.1之后,如果不存在不会有默认选项,显示也是空白。

  3. $.post(...). error(function()错误回调方法报错:Uncaught TypeError: $.post(...).error is not a function

原因:$.post()使用连缀.error()方法提示错误,连缀方法被.fail()取代。

综合考虑,jQuery在由低版本升级至高版本时,需要借助应用迁移辅助插件 jQuery Migrate,实现高级版本兼容低级版本。

3.3 jquery migrate是什么

jQuery Migrate 是应用迁移辅助插件,是用于高级版本兼容低级版本的辅助插件。

例如jQuery版本用的是1.x,计划升级到3.x,就可以在页面删除1.x版本,换成3.x版本,如果有脚本错误,就引入jquery-migrate插件用于兼容低版本,同时也显示低版本方法替换成新版本方法的方案。

jQuery migrate(转移、过度) jquery 升级后新旧代码不兼容问题,此包就是解决此问题的。 就是把不支持的函数再写出来支持下。

jQuery 版本之间有区别。比如1.9版本对于 live()die()toggle()sub()$.browser 等等都已经不支持了。 在不改变系统代码的同时,要使用 1.9 之后的版本,就需要使用 jQuery migrate(转移、过度)。

应用示例如下:

<!DOCTYPE html>
<html>
<head>
 <meta charset="UTF-8">
 <title>test</title>  
 <script type="text/javascript" src="jquery-1.6.1.js"></script>
 <script type="text/javascript">
 $(document).ready(function(){
  $("button").click(function(){
  alert($("li").size());
  });
 });
 </script>
</head>
<body>
<button>测试按钮</button>
<ul>
<li>Coffee</li>
<li>Milk</li>
<li>Soda</li>
</ul>
</body>
</html>

点击按钮,弹出“3”。

<script type="text/javascript" src="jquery-1.6.1.js"></script>

替换成<script type="text/javascript" src="jquery-3.3.1.js"></script>

这时点击按钮,在Chrome浏览器开发者窗口中显示脚本错误:
cve2020,安全生产,vue.js,前端,javascript

$(...).size is not a function

在页面再引入<script src="jquery-migrate-3.0.1.js"></script>,点击按钮,正常弹出“3”。

同时提示size方法被弃用并使用length代替:jQuery.fn.size() is deprecated and removed; use the .length property

$("li").size()改成$("li").length,移除jquery-migrate-3.0.1.js,点击按钮,弹出“3”。

迁移方法完成。

总结:jQuery migrate其实是将待升级目标jQuery版本之前的废弃方法进行汇总,并在检测到用户使用废弃方法时,自动调用jQuery migrate集成的废弃方法,同时控制台提示用户当前使用方法在高版本jQuery中已被废弃,并给出高版本中相应的替换方法。相应的,jQuery migrate就与jQuery版本间产生了关联关系,若应用版本错误,就可能导致jQuery migrate中未集成废弃方法,应用废弃方法时报错。理论上,若jQuery发布最新版本时,同时发布最新版本的jQuery migrate,应用最新版本的jQuery migrate就不会产生应用废弃方法报错的问题文章来源地址https://www.toymoban.com/news/detail-743805.html

四、拓展阅读

  • jQuery官网
  • jQuery 3.6.0(点击下载)
  • jQuery最新xss漏洞分析——CVE-2020-11022/11023 - 云+社区 - 腾讯云 (tencent.com)
  • Deprecated 3.5
  • jQuery migrate

到了这里,关于安全生产:CVE-2020-11022/CVE-2020-11023漏洞解析的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 智能管理护航制造企业安全生产:信息化升级解决方案解析-亿发

    安全生产信息化是通过充分利用信息技术,及时采集安全生产管理中的各种要素和数据,并进行统计分析,随后将分析结果及时反馈,以实现对安全生产管理的指导和帮助,旨在提高安全生产管理的效能。 在提升安全生产管理水平方面,加强安全生产信息化平台建设显得尤为

    2024年01月19日
    浏览(41)
  • Apache Tomcat 安全漏洞(CVE-2020-13935)复现

    漏洞详情: Apache Tomcat是美国阿帕奇(Apache)软件基金会的一款轻量级Web应用服务器。该程序实现了对Servlet和JavaServer Page(JSP)的支持。 Apache Tomcat中的WebSocket存在安全漏洞,该漏洞源于程序没有正确验证payload的长度。攻击者可利用该漏洞造成拒绝服务(无限循环)。 影响版

    2024年02月11日
    浏览(36)
  • 【网络安全---漏洞复现】Tomcat CVE-2020-1938 漏洞复现和利用过程(特详细)

    分享一个非常详细的网络安全笔记,是我学习网安过程中用心写的,可以点开以下链接获取: 超详细的网络安全笔记 Apache Tomcat文件包含漏洞(CNVD-2020-10487/CVE-2020-1938)。该漏洞是由于Tomcat AJP协议存在缺陷而导致,攻击者利用该漏洞可通过构造特定参数,读取服务器webapp下的

    2024年02月08日
    浏览(38)
  • 20场面试斩获大厂offer,你在我这能学到什么?,面试真题解析 某市开展安全生产专项整治小宋在

    先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7 深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前! 因此收集整理了一份《2024年最新Android移动开发全套学习资

    2024年04月25日
    浏览(33)
  • 安全生产管理平台——革新传统安全生产管理方式,重塑企业安全文化

    安全生产管理在现代企业中占据着至关重要的地位。传统的安全生产管理方式虽然在一定程度上能够保障企业的生产安全,但随着企业规模的不断扩大和生产环境的日益复杂,其局限性也愈发凸显。而安全生产管理平台的出现,正是为了解决这一问题。 平台功能与特点 安全

    2024年01月18日
    浏览(36)
  • Weblogic未授权访问漏洞-CVE-2020-14882&&CVE-2020-14883

    Weblogic未授权访问漏洞-CVE-2020-14882CVE-2020-14883 Weblogic 管理控制台未授权远程命令执行漏洞(CVE-2020-14882,CVE-2020-14883)。 CVE-2020-14882:允许未授权的用户绕过管理控制台的权限验证访问后台 CVE-2020-14883:允许后台任意用户通过HTTP协议执行任意命令 使用这两个漏洞组成的利用链,可通

    2024年02月16日
    浏览(26)
  • 第六章 6.1 施工安全生产许可证制度 6.2 施工安全生产责任和安全生产教育培训制度 6.3 施工现场安全防护制度

    国家对矿山企业,建筑施工企业和危险化学品、烟花爆竹、民用爆炸物品生产企业实行安全生产许可制度。 1.申请领取安全生产许可证的条件 建立、健全安全生产责任制,指定完备的安全生产规章制度和操作规程 保证本单位安全生产条件所需资金的投入 设置安全生产管理机

    2024年01月22日
    浏览(30)
  • 安全生产危化品生产单位安全管理人员一[安考星]

    该模拟试题来源于安考星公众号 1、企业要加强对各种救援队伍的培训,保证人员能够熟悉事故发生后所采取的对应方法和步骤,做到应知应会。 正确答案:正确 参考解析:救援队伍的培训是提高救援人员的应知应会能力的重要途径。 2、应急救援的器材不用检查,性能完好就行

    2024年02月13日
    浏览(36)
  • 2023安全生产合格证危险化学品生产单位安全管理人员模拟一[安考星]

    该模拟试题来源于安考星公众号 1、如果储存容器合适的情况下,硫酸、硝酸、盐酸及烧碱都可储存于一般货棚内。 正确答案:正确 参考解析:储存要求规定的。 2、装卸对人体有害及腐蚀性物品时,操作人员应佩带相应的防护用品。 正确答案:正确 参考解析:《安全生产法》

    2024年02月14日
    浏览(35)
  • 水利三类人员专职安全生产管理人员c证安全生产法律法规考试题库

    ​本题库是根据最新考试大纲要求,结合近年来考试真题的重难点进行汇编整理组成的全真模拟试题,考生们可以进行专项训练,查漏补缺巩固知识点。本题库对热点考题和重难点题目都进行了仔细的整理和编辑,相信考生在经过了针对性的刷题练习后,对于考试内容会更加

    2024年02月12日
    浏览(71)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包