前两周发布的 jQuery 3.4.0 除了常规更新外,更重要的是修复了一个称为“原型污染(prototype pollution)”的罕见安全漏洞。

什么是原型污染?顾名思义,原型污染就是指攻击者通过某种手段修改 JavaScript 对象的 prototype

JavaScript 对象就跟变量一样,但它不是存储一个值(var car =“Fiat”),而是可以包含基于预定义结构的多个值 (var car ={type:"Fiat", model:"500", color:"white"})。

prototype 定义了 JavaScript 对象的默认结构和默认值,因此在没有为对象赋值时应用程序也不会崩溃。

但如果攻击者从 JavaScript 对象的 prototype 入手,攻击者可通过将其控制的 prototype 注入对象,然后通过触发 JavaScript 异常导致拒绝服务(denial of service),或者篡改应用程序源代码以注入攻击者的代码路径。最终的结果可能就是导致应用程序崩溃或劫持应用程序。

Snyk 团队详细描述了这个新的 jQuery “原型污染”漏洞,其中包含攻击原理和规避方法。“原型污染攻击(CVE-2019-11358)”的概念验证代码点此查看。

虽然漏洞比较严重,但好在“原型污染”攻击并不能被大规模利用,因为每段攻击代码必须针对每个目标进行微调。此外,大部分网站并不使用 jQuery 进行重要的操作,主要是用于操作动画中的菜单或创建弹窗等。

最后,如果担心安全问题,建议升级至最新版本 jQuery 3.4.0,毕竟目前大多数网站仍在使用 jQuery 的 1.x 和 2.x 分支,这意味着绝大多数基于 jQuery 的应用程序和网站仍有可能遭受攻击。

jQuery 的“原型污染”安全漏洞相关推荐

  1. 关于原型污染漏洞的完整指南

     聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码卫士 原型污染漏洞是安全社区所知不多的漏洞之一.2017年左右,研究人员开始将其视作一个潜在的攻击向量:2018年,第一批漏洞在野现身.本文将深 ...

  2. Node.js 沙箱易受原型污染攻击

     聚焦源代码安全,网罗国内外最新资讯! 编译:代码卫士 研究人员表示,用于测试不可信 JavaScript 代码的沙箱 vm2 中存在一个漏洞,可使恶意人员规避该库的安全控制并执行远程代码执行攻击. ...

  3. Kibana原型污染导致远程执行代码 CVE-2019-7609 漏洞复现

    Kibana原型污染导致远程执行代码(CVE-2019-7609) by ADummy 0x00利用路线 ​ 0x01漏洞介绍 ​ Kibana是Elasticsearch的开源数据可视化仪表板. 5 ...

  4. NodeBB原型污染漏洞可导致账户遭接管

     聚焦源代码安全,网罗国内外最新资讯! 编译:代码卫士 用于创建论坛应用的 Node.js 平台 NodeBB,已修复一个原型污染漏洞,它可导致攻击者模拟其它用户并接管管理员账户.该漏洞是由于错误地处 ...

  5. node.js 原型污染攻击的分析与利用

    目录 简介 javaScript中的对象 constructor是什么? javaScript中的原型 原型污染 Merge()为什么不安全? 简介 原型污染攻击, 如名所示, 是通过污染一个基础对象 ...

  6. 分享一个超棒的在线jQuery mobile原型设计开发工具 - codiqa

    在线演示  本地下载 今天我们分享一个超棒的在线jQuery mobile原型设计开发工具:Codiqa,这个在线设计工具能够帮助我们快速的使用拖拽的方式来构建一个jQuery mobile的web应 ...

  7. jQuery 的原型关系图

    整理了一下 jQuery 的原型关系图,理解起来更加方便一些. 图例: 黄色的为对象,蓝色的为函数. 转载于:https://www.cnblogs.com/haogj/archive/2010/04 ...

  8. jquery使用原型

    jquery使用原型 html代码如下: <!DOCTYPE html> <html lang="en"> <head><meta cha ...

  9. HTTP参数污染(HPP)漏洞

    HPP(HTTP参数污染) HPP是HTTP Parameter Pollution的缩写,意为HTTP参数污染. 原理:浏览器在跟服务器进行交互的过程中,浏览器往往会在GET/POST请求里面带上参 ...

最新文章

  1. swift通知栏推送_如何使用Swift和Laravel使用推送通知创建iOS加密跟踪应用
  2. 3a三次方h c语言表达式,希尔伯特曲线——第八届蓝桥杯C语言B组(国赛)第三题...
  3. BZOJ 3745: [Coci2015]Norma(分治)
  4. VL09增强-冲销校验
  5. 【机器学习】特征降维-特征选择
  6. 人工智能实践之旅 —— 简单说说主要内容和安排
  7. java生成pdf_Java实现PDF文件生成并且打印pdf文件 demo
  8. mysql数据库详解(续一)
  9. 【渝粤题库】广东开放大学企业标准化 形成性考核
  10. ES备份工具elasticdump
  11. 利用c语言编制1个程序,实现对给定语法句子的递归下降分析.,递归下降语法分析 - osc_3ubrwgtm的个人空间 - OSCHINA - 中文开源技术交流社区...
  12. Azure Blob 存储简介
  13. 数据库原理mysql课堂超星尔雅_超星尔雅数据库原理网课答案
  14. 火山PC模拟鼠标操作
  15. 数据结构与算法分析:C语言描述(原书第2版) PDF+源代码+习题答案
  16. 小程序对接企业微信客服
  17. python元组操作_python元组操作
  18. FAT16 FAT32 NTFS exFAT ReFS
  19. JQuery 的click失效,无法触发
  20. 用汇编语言写51单片机程序开头为什么一般都这样:ORG 0000H LJMP MAIN ORG 0030H

热门文章

  1. matlab分支定界法linprog_序列比对(二十二)——中间字符串分支定界方法中更紧的界...
  2. java executequery_java execute、executeQuery和executeUpdate之间的区别
  3. ROS入门笔记(一): ROS简介
  4. win台式找不到计算机管理,win10系统计算机右键-管理打不开windows找不到文件的解决方法...
  5. oracle .bash_profile在哪,oracle 11g 测试用户的 .bash_profile 环境变量,路径设置
  6. zabbix4监控mysql_Zabbix4监控Mysql5.7
  7. 400集python入门到精通_2020年最强Python学习路线+教程,400集带你从入门到精通
  8. 168输出为861java_AcWing 861. 二分图的最大匹配-java-关键处注释
  9. 江苏大学计算机学院宋美如,姜震-江苏大学计算机科学与通信工程学院
  10. IBM MQ 使用指南