漏洞复现----10、Node.js CVE-2017-14849 任意文件读取

文章目录

  • 一、Node.js与Express
    • 1、Node.js
    • 2、Express
    • 3、影响版本
    • 4、环境安装
      • 4.1、Node.js 8.5.0安装
      • 4.2、Express 4.15.5安装
  • 二、漏洞原理
  • 三、漏洞复现


一、Node.js与Express

1、Node.js

node.js是一个基于V8引擎的Javascript运行环境,它使得 Javascript 可以运行在服务端,直接与操作系统进行交互,与文件控制、网络交互、进程控制等。可以简单的理解为:node.js就是运行在服务端的Javascript。

2、Express

Express是一个简洁而灵活的node.js Web应用框架,提供一系列强大特性帮助创建各种Web和移动设备应用。Express不对node.js已有的特性进行二次抽象,我们只是在它之上扩展了Web应用所需的功能。

3、影响版本

Node.js 8.5.0 + Express 3.19.0-3.21.2
Node.js 8.5.0 + Express 4.11.0-4.15.5

4、环境安装

4.1、Node.js 8.5.0安装

1、下载Node.js 8.5.0安装包
wget https://nodejs.org/download/release/v8.5.0/node-v8.5.0-linux-x64.tar.gz
2、解压
tar -zxvf node-v8.5.0-linux-x64.tar.gz
3、安装
sudo mv node-v8.5.0-linux-x64 /opt/
sudo ln -s  ./bin/npm /usr/bin/npm
sudo ln -s  ./bin/node /usr/bin/node

4.2、Express 4.15.5安装

1、下载express-4.15.5
wget https://github.com/expressjs/express/archive/4.15.5.tar.gz
2、解压
tar -zxvf  4.15.5.tar.gz
3、安装express
cd express-4.15.5 && npm install
4、开启express
cd examples
cd static-files
node index.js

二、漏洞原理

原理没太看明白,有兴趣的可以去看看腾讯应急响应中心的关于此漏洞复现的文章。


三、漏洞复现

1、访问web页面,开发者模式下可以看到引用了/static/main.js文件,说明其存在静态文件服务器。
漏洞复现----10、Node.js CVE-2017-14849 任意文件读取_第1张图片
2、构建Payload:/static/../../../foo/../../../../etc/passwd
漏洞复现----10、Node.js CVE-2017-14849 任意文件读取_第2张图片
参考链接:https://security.tencent.com/index.php/blog/msg/121

你可能感兴趣的:(#,漏洞复现,CVE-2017-14849,Node.js)