nodejs CVE-2017-14849复现
漏洞简单介绍
漏洞产生主要原因:Node.js 8.5.0版本中对"…"处理与其他模块不兼容导致
影响版本
Node.js 8.5.0 + Express 3.19.0-3.21.2
Node.js 8.5.0 + Express 4.11.0-4.15.5
环境
Ubuntu下载安装包
node.js 8.5.0 (https://nodejs.org/download/release/v8.5.0/)
express-4.15.5 (https://github.com/expressjs/express/releases)
安装好burpsuite
安装nodejs与express
1.安装nodejs
如果原本有nodejs,可以先进行卸载:
sudo apt-get remove nodejs
在bin下通过
sudo rm -rf npm/node
删除,再加入新的node版本
解压安装包
tar -zxvf node-v8.5.0-linux-x64.tar.gz
移到通用软件安装目录/opt,也可以安装到指定位置
mv node-v8.5.0-linux-x64 /opt/
mv显示permission denied使用sudo mv
安装 npm 和 node 命令到系统命令
sudo ln -s /opt/node-v8.5.0-linux-x64/bin/node /usr/local/bin/node
sudo ln -s /opt/node-v8.5.0-linux-x64/bin/npm /usr/local/bin/npm
检查版本:
node -v
输出版本号8.5.0则表示配置成功
2.安装express
解压包:
tar -zxvf express-4.15.5.tar.gz
进入express目录下,安装express
cd express-4.15.5 && npm install
进入到expresss-4.15.5/examples/static-files目录里
node index.js
实验payload:
/static/…/…/…/a/…/…/…/…/etc/passwd
结果错误,可以使用vulhub上的cve进行复现