首页 > 其他分享 >JQuery原型污染漏洞-CVE-2019-11358

JQuery原型污染漏洞-CVE-2019-11358

时间:2023-02-14 22:58:15浏览次数:38  
标签:JQuery jquery 11358 漏洞 2019 https 攻击者 原型 com

漏洞概述

       原型污染漏洞指的是攻击者修改 JavaScript对象原型的能力。JavaScript对象就像变量一样,但存储的并非一个值 (var car = “
Fiat”),而是能够包含基于预设结构的多个值(var car ={type:"Fiat", model:"500", color:"white"})。
       原型定义了JavaScript 对象的默认结构和默认值,因此当未设置值时,应用程序不会崩溃。原型污染攻击可导致攻击者覆写
JavaScript 应用程序对象原型。由攻击者控制的属性可被注入对象,之后或经由触发JavaScript异常引发拒绝服务,或篡改该应用
程序源代码从而强制执行攻击者注入的代码路径。
       漏洞本身是高危漏洞,但利用难度比较大。原型污染漏洞并未可大规模被利用的漏洞,因为漏洞要利用成功,需要攻击者非常了解
具体代码的结构,需要攻击者深入了解每个网站和对象原型的运作方式以及这些原型如何在庞大的图式中进行分解,然后构造合适
的利用方法才能成功。一般闭源的网站系统,攻击者很难深入了解从而构造利用代码,所以几乎不受此漏洞攻击。

漏洞验证
漏洞POC:https://github.com/jquery/jquery/pull/4333。
漏洞分析如下:
./src/core.js 第155行:
if ((options = arguments[ i ]) != null) {
options 取传入的参数 arguments[i],而后第158 、159 行:
for (name in options) {                      
     copy= options [name];
name、copy值进而可以受输入控制。
最后,在第183行:
target[name] = jQuery.extend (deep,clone,copy);
在第187行:
target[name] = copy;
如果name可以为__proto__,则会向上影响target的原型,进而覆盖造成原型污染。
target 在第127行:
target = arguments[ 0 ] || {}

漏洞复现

var jquery = document.createElement('script');
jquery.src = 'https://code.jquery.com/jquery-3.3.1.min.js';

let exp = $.extend(true, {}, JSON.parse('{"__proto__": {"exploit": "h3rmesk1t"}}'));
console.log({}.exploit)

 

 

测试您的网站
要了解您的应用程序是否存在漏洞和/或是否正确应用了修复程序,您可以在浏览器的开发人员控制台中执行以下代码:

var maliciousJson = '{ "myProperty" : "a", "__proto__" : { "isVulnerable" : true } }'; var testObject = jQuery.extend(true, {}, JSON.parse(maliciousJson )); if (typeof {}.isVulnerable !== 'undefined' && {}.isVulnerable === true) { alert("Bad news :(\nYou're (still) vulnerable to Prototype Pollution") } else { alert("All Good! :)\nYou're NOT vulnerable (anymore) to Prototype Pollution") }

点击回车键,弹出警告,表明当前您的网站不受该威胁:

修复建议
(1)jQuery version 3.x 修复方案
升级到最新的3.4.0版本:https://blog.jquery.com/2019/04/10/jquery-3-4-0-released/。
(2)jQuery version 2.x和1.x 修复方案
补丁链接:https://github.com/DanielRuf/snyk-js-jquery-174006?files=1。

参考信息

https://xz.aliyun.com/t/11272

https://www.privacy-wise.com/mitigating-cve-2019-11358-in-old-versions-of-jquery/

https://www.infosecmatter.com/nessus-plugin-library/?id=124719

标签:JQuery,jquery,11358,漏洞,2019,https,攻击者,原型,com
From: https://www.cnblogs.com/gaopei/p/17121131.html

相关文章

  • sqlServer 2019 开发版(Developer)下载及安装
    下载软件官网只有2022的,2019使用百度网盘进行下载安装下崽器选择自定义安装选择语言、以及安装位置点击“安装”安装SQLServer可能的故障以上步骤......
  • jquery获得标签的值或元素的内容
       例如:.html()获取a标签中的i元素console.error($("a[name="+index+"]").html()); 设置a标签里的i标签元素,换样式$("a[name="+index+"]").html(......
  • jQuery对象和JS对象区别与转换jQuery时间绑定&入口函数&样式控制
    jQuery对象和JS对象区别与转换JQuery对象和JS对象区别与转换1.JQuery对象在操作时,更加方便。2.JQuery对象和js对象方法不通用的3.两者相互转换jq......
  • jQuery实现高仿QQ音乐
    几个实现的效果看视频吧:bandicam2020-02-0516-28-20-127动图很是不清楚github地址奉上:https://github.com/tangmusenLiu/Large-warehouse​​github地址​​.代码:html......
  • jQuery custom scrollbarjQuery自定义滚动条
    可以去GitHub上找对应的文件下载,​​https://github.com/mustache/mustache.github.com​​.点击下载压缩包下载完customscrollbar的压缩包,解压,找到里面下张图两个划线......
  • jQuery-概念、jQuery快速入门
    jQuery-概念概念:一个JavaScript框架,简化js开发jQuery是一个快速,简介的JavaScript框架,是继Prototype之后又一个优秀的JavaScript代码库(或JavaScript框架)jQuery设计的......
  • windows核心编程随书代码转VS2019版本
    新建一个目录WindowsHEXIN,将原来代码文件中的CommonFiles目录复制到WindowsHEXIN里,新建的工程文件都保存在WindowsHEXIN里,将解决方案和项目放同一目录VS2019-文件-新......
  • JQuery对象和JS对象的区别与转换
    JQuery对象和JS对象区别与转换1JQuery对象在操作时更加方便2JQuery对象和js对象方法不通用的3两者相互转换jq转js:jq对象[索引]或jq对象,get......
  • jQuery1.0.3<3.5.0xss漏洞
    起因: 升级方法:1.找到jQuery文件,我的路径为:/src/main/webapp/plugin/jquery/js/jquery.min.js2.下载需要升级的jQuery文件到指定目录,建议与升级前的jQuery文件同目录。下......
  • [CSP-S2019] Emiya 家今天的饭
    题解P5664这道题非常水,段誉初二就切了,但是我初中DP学的非常差,基本什么都不会,见到的小套路能会一个算一个吧。直接计算比较困难,尝试使用DP求出不合法的方案数即......