jQuery的“原型污染”安全漏洞
前兩周發(fā)布的jQuery 3.4.0除了常規(guī)更新外,更重要的是修復(fù)了一個(gè)稱為“原型污染(prototype pollution)”的罕見(jiàn)安全漏洞。
什么是原型污染?顧名思義,原型污染就是指攻擊者通過(guò)某種手段修改 JavaScript 對(duì)象的 prototype。
JavaScript 對(duì)象就跟變量一樣,但它不是存儲(chǔ)一個(gè)值(var car =“Fiat”),而是可以包含基于預(yù)定義結(jié)構(gòu)的多個(gè)值(var car ={type:"Fiat", model:"500", color:"white"})。
prototype 定義了JavaScript 對(duì)象的默認(rèn)結(jié)構(gòu)和默認(rèn)值,因此在沒(méi)有為對(duì)象賦值時(shí)應(yīng)用程序也不會(huì)崩潰。
但如果攻擊者從 JavaScript 對(duì)象的prototype入手,攻擊者可通過(guò)將其控制的prototype注入對(duì)象,然后通過(guò)觸發(fā) JavaScript 異常導(dǎo)致拒絕服務(wù)(denial of service),或者篡改應(yīng)用程序源代碼以注入攻擊者的代碼路徑。最終的結(jié)果可能就是導(dǎo)致應(yīng)用程序崩潰或劫持應(yīng)用程序。
Snyk 團(tuán)隊(duì)詳細(xì)描述了這個(gè)新的jQuery “原型污染”漏洞,其中包含攻擊原理和規(guī)避方法,點(diǎn)擊查看“原型污染攻擊(CVE-2019-11358)”的概念驗(yàn)證代碼。
雖然漏洞比較嚴(yán)重,但好在“原型污染”攻擊并不能被大規(guī)模利用,因?yàn)槊慷喂舸a必須針對(duì)每個(gè)目標(biāo)進(jìn)行微調(diào)。此外,大部分網(wǎng)站并不使用 jQuery 進(jìn)行重要的操作,主要是用于操作動(dòng)畫(huà)中的菜單或創(chuàng)建彈窗等。
最后,如果擔(dān)心安全問(wèn)題,建議升級(jí)至最新版本jQuery 3.4.0,畢竟目前大多數(shù)網(wǎng)站仍在使用 jQuery 的 1.x 和 2.x 分支,這意味著絕大多數(shù)基于 jQuery 的應(yīng)用程序和網(wǎng)站仍有可能遭受攻擊。
總結(jié)
以上是生活随笔為你收集整理的jQuery的“原型污染”安全漏洞的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 共享单车失火殃及“凤凰” 老牌自行车沦为
- 下一篇: 共享飞机来了,专家:年内实现手机叫“飞的