nodejs命令执行和沙箱安全

今天一个yapi满天飞,看了下以前好像用过。其实是一个正常的mock功能,很多安全人员没深入开发或者是结合到sdl中,所以对这些需求的理解不深刻。

那么假设我们要执行这个需求,这个需求就是要执行任意命令,因为业务会有千奇百怪的需求,前端nodejs就要执行命令来测试的。

java里有沙箱,nodejs里也有。

我们

require(“vm”)就可以了。

vm里有3个方法,runInNewContext、runInThisContext、runInContext

这3个方法的第二个参数就是上下文。

可惜的是 如果这样,我们可以用原型链绕过,如下

const vm = require('vm');  
vm.runInNewContext("this.constructor.constructor('return process')().exit()")


然后我看到了一个网上比较断子绝孙的办法

Object.create(null)

直接跳到了原型链的顶端,这就是一片空白。那就只能执行简单的js了。可能完全不能满足业务的需求了。

因为内置的全部给干掉了。new Function都new个屁了,业务还跑吗?

要是能这样搞安全就好了,我每天直接砍需求就可以把SDL做到完美了。

好了

我觉得

nodejs命令执行和沙箱安全
nodejs命令执行和沙箱安全

大佬的问题的答案应该是:没有

所以,这个漏洞怎么修复? 答案就是不修复 正常功能,加白!

来源:xsser的博客,本文观点不代表自营销立场,网址:https://www.zyxiao.com/p/134900

发表评论

登录后才能评论
服务中心
服务中心
联系客服
联系客服
侵权联系 投诉举报
返回顶部
河南,挺住!郑州,挺住!一起为他们加油!!