今天打网站的时候无意中发现awvs报了一个lodash的漏洞,所以来记录一下

现在前端大多数是vue和react框架的,所以就少不了引入依赖,而lodash是一个流行的npm库,
检测方法很简单,在前端控制器输入

1
2
3
4
const payload = '{"constructor": {"prototype": {"lodash": true}}}'
_.defaultsDeep({}, JSON.parse(payload))
if({}.lodash === true){ alert("Bad news :(\nYou're (still) vulnerable to Prototype Pollution") } else { alert("All Good! :)\nYou're NOT vulnerable (anymore) to Prototype Pollution") }

如果弹窗

说明没问题,lodash是最新的,如果没有的花说明存在漏洞

漏洞原理:

这篇写得好

(主要是我还没学完原型链…)