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。

