网站首页 > 基础教程 正文
一、安全通告
jQuery官方于日前发布安全预警通告,通报了漏洞编号为 CVE-2019-11358的原型污染漏洞。由攻击者控制的属性可被注入对象,之后或经由触发 JavaScript 异常引发拒绝服务,或篡改该应用程序源代码从而强制执行攻击者注入的代码路径。奇安信代码卫士将持续关注该漏洞进展,并第一时间为您更新该漏洞信息。
二、文档信息
文档名称 jQuery CVE-2019-11358
原型污染漏洞关键字jQuery,
原型污染发布日期2019年4月23日分析团队奇安信代码卫士
三、漏洞信息
3.1 漏洞分析
./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 ] || {},
3.2 风险评估
漏洞本身是高危漏洞,但利用难度比较大。原型污染漏洞并未可大规模被利用的漏洞,因为漏洞要利用成功,需要攻击者非常了解具体代码的结构,需要攻击者深入了解每个网站和对象原型的运作方式以及这些原型如何在庞大的图式中进行分解,然后构造合适的利用方法才能成功。一般闭源的网站系统,攻击者很难深入了解从而构造利用代码,所以几乎不受此漏洞攻击。
四、修复方案
(1)jQuery version 3.x 修复方案
升级到最新的3.4.0版本。
(2)jQuery version 2.x 修复方案
$ diff jquery-2.2.4.js jquery-2.2.4-patch.js 213c213,214 < if (target === copy) { --- > // Prevent Object.prototype pollution > if (name === "__proto__" || target === copy) {
(3)jQuery version 1.x 修复方案
$ diff jquery-1.12.4.js jquery-1.12.4-patch.js 213c213,214 < if (target === copy) { --- > // Prevent Object.prototype pollution > if (name === "__proto__" || target === copy) {
*本文作者:奇安信代码卫士,转载自FreeBuf.COM
猜你喜欢
- 2024-10-12 HTML编辑器从WORD复制粘贴图片 html复制粘贴快捷键
- 2024-10-12 一文讲解关于jQuery语法 jquery的语法
- 2024-10-12 19、深拷贝浅拷贝的区别?如何实现一个深拷贝?
- 2024-10-12 14个jQuery 实时搜索插件,用了都说好!
- 2024-10-12 如何复制WORD的图文到富文本框编辑器中自动上传
- 2024-10-12 提高Web开发速度技巧 提高web开发速度技巧是什么
- 2024-10-12 不要被误导了:JavaScript深拷贝的5种方法
- 2024-10-12 AJAX with JSP使用jQuery示例 简要说明jquery中的ajax方法使用
- 2024-10-12 碎片时间学编程「14」:如何在 JavaScript 中克隆对象?
- 2024-10-12 30、jQuery 的属性拷贝的实现原理是什么,如何实现深浅拷贝?
- 最近发表
- 标签列表
-
- gitpush (61)
- pythonif (68)
- location.href (57)
- tail-f (57)
- pythonifelse (59)
- deletesql (62)
- c++模板 (62)
- css3动画 (57)
- c#event (59)
- linuxgzip (68)
- 字符串连接 (73)
- nginx配置文件详解 (61)
- html标签 (69)
- c++初始化列表 (64)
- exec命令 (59)
- canvasfilltext (58)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- node教程 (59)
- console.table (62)
- c++time_t (58)
- phpcookie (58)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)