HFCTF2020-JustEscape
摘要
nodejs vm2 沙箱逃逸?
run.php:
1 |
|
注意编码 =.=
真的是 PHP 嘛
按照页面访问:
直接拦截……
+
这里编码成了%2b
改完编码后:SyntaxError: Unexpected number
查一下报错信息,是js的报错,应该是nodejs
也许也可以改一下url路径看下信息……
1 | Error at vm.js:1:1 at Script.runInContext (vm.js:131:20) at VM.run (/app/node_modules/vm2/lib/main.js:219:62) at /app/server.js:51:33 at Layer.handle [as handle_request] (/app/node_modules/express/lib/router/layer.js:95:5) at next (/app/node_modules/express/lib/router/route.js:137:13) at Route.dispatch (/app/node_modules/express/lib/router/route.js:112:3) at Layer.handle [as handle_request] (/app/node_modules/express/lib/router/layer.js:95:5) at /app/node_modules/express/lib/router/index.js:281:22 at Function.process_params (/app/node_modules/express/lib/router/index.js:335:12) |
node.js 看不太懂欸……
在沙盒环境下通过原型链的形式能获取全局的 Function,并通过它来执行代码?
通过js神奇的拼接套poc🤣
1 | (function (){ |
或者……当对象的方法或者属性名关键字被过滤的情况下可以利用数组调用的方式绕过关键字的限制:
1 | ?code[]=(function(){ |
HFCTF2020-JustEscape