发布时间:2024-01-17 17:02:35来源:https://www.cnblogs.com/h2zZhou/p/10781664.html阅读(690)
jQuery官方于日前发布安全预警通告,通报了漏洞编号为 CVE-2019-11358的原型污染漏洞。由攻击者控制的属性可被注入对象,之后或经由触发 JavaScript 异常引发拒绝服务,或篡改该应用程序源代码从而强制执行攻击者注入的代码路径。
./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.4.0版本。
$ 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) {
$ 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) {
关键字: jQuery
上一篇: ef/linq行转列
下一篇: .NET8升级小工具
1513
1436
1971
1475
1333
948
1630
1307
941
1808
9579
5991
5517
5115
4563
4271
3412
3332
3326
3265