Node.js反序列化漏洞(CVE-2017-5941)

2019-04-17  本文已影响0人  Lucifer1993

                    Node.js反序列化漏洞(CVE-2017-5941)

    nodejs中的node-serialize模块被爆反序列化漏洞,通过issue可以看出漏洞出在eval函数。

    进入到eval函数需要两点:一个是obj[key]的变量类型是string,另一个是obj[key]要以FUNCFLAG开头,FUNCFLAG在最前面被定义为'_$$ND_FUNC$$_';所以如果我们传入序列化后的字符串例如:{"test":"_$$ND_FUNC$$_function(){console.log('test')}"}再截取子字符串后就变成了eval(function(){console.log('test')})。

    但是这种方法不会立即执行,所以要使用IIFE( Immediately-Invoked Function Expression)来加载payload,例如:

    接下来我们编码构造好的利用代码base64编码一下发送给服务端。

可以看到console已经输出,代码被执行。

接下来利用node_shell.py生成反弹的shellcode。

burpsuite重放后获得shell。

参考:https://hd7exploit.wordpress.com/2017/05/29/exploiting-node-js-deserialization-bug-for-remote-code-execution-cve-2017-5941/

上一篇 下一篇

猜你喜欢

热点阅读