目录
这是一道 Node.js 沙盒逃逸的题目,在此记录一些技巧。
信息搜集
进入题目环境:
直接给出了一个可执行任意代码的入口 /run.php?code=<code>,直接复制第二个 demo 的路径和请求参数到地址栏访问看看:
执行了 new Date(); 这行代码,并且将日期结果回显到页面上,说明 demo 确实没欺骗我,这里有执行任意代码的入口。
再复制第一个 demo 的路径和请求参数到地址栏访问:
没有表达式的执行结果,那么可能是有敏感字符串的黑名单检测机制。经过我尝试输入其他的 Node.js 语句,发现有以下字符串被列为黑名单:
' (单引号)
" (双引号)
+ (加号)
process
constr