一、什么是原型链污染


https://security.snyk.io/vuln/SNYK-JS-LODASH-450202



二、原型链污染原理

三、哪些情况下会原型链污染



也就是上面o2里的 __proto__ 代码的是o2 而不是object原型

四、原型链污染导致的RCE

五、练习
题目给了一串node.js的代码

api 路由下会把 req.body 合并 进一给空字典,这里就有原型链污染的地方

我们的目的是为了执行这里的eval,让Super 拥有 userid : superadmin , 也就是通过污染原型链让所有的object对象都拥有userid


将payload注入到api路由下,api路由会执行merge合并,让空字典的原型链__proto__ 拥有userid:useradmin 属性

访问后发现并没有成功

因为没有用json解析,这个和之前将的没有成功污染原型链的例子一样

改成json 再次访问就变空白了

接下来只需要对code进行传参,但code有黑名单过滤

这里用十六进制来绕过 quire('child_process') [execSync](ls /)

