锐*源码-php审计
字数 1062 2025-08-09 19:33:17

锐捷网络-EWEB网管系统代码审计报告

1. 系统路由规则分析

锐捷EWEB网管系统采用以下两种路由规则:

  1. 基于Action的路由

    /文件夹名/文件名.php?a(action)=flowEasy(方法名)
    
  2. 基于Controller的路由

    /文件夹名/文件名.php?c(controller)=flowEasy(控制器名)
    

示例说明

  • 访问某个控制器的方法可以通过:
    /mvc/controller.php?a=index
    
    /mvc/controller.php?c=index
    

2. 关键漏洞分析

2.1 命令执行漏洞

漏洞位置

通过全局搜索关键词exec发现关键点。

漏洞原理

  1. 系统使用P方法(位于/mvc/lib/core.function.php)接收POST参数

  2. 攻击者可构造以下POST参数:

    • mode_url
    • command
    • answer
  3. mode_url被赋值为exec时,系统会将这三个参数的值传递到/mvc/lib/core.function.php类的execCli方法中

  4. 执行流程:

    • 检查command参数是否存在且不为空
    • 调用php_exec_cli函数(疑似系统内部函数)执行命令

利用条件

  1. 必须使用POST请求
  2. 必须包含以下参数:
    • mode_url
    • command(用于传递要执行的命令)
    • answer
  3. 路由参数a必须设置为index

漏洞利用示例

POST /mvc/controller.php?a=index HTTP/1.1
Host: target.com
Content-Type: application/x-www-form-urlencoded

mode_url=&command=whoami&answer=

3. 审计步骤详解

3.1 关键点定位

  1. 全局搜索exec关键词
  2. 分析/mvc/lib/core.function.php文件
  3. 重点关注P方法和execCli方法

3.2 漏洞验证流程

  1. 确认core.function.php文件存在且可访问
  2. 检查execCli方法是否对输入参数进行了充分过滤
  3. 验证php_exec_cli是否可直接执行系统命令

4. 防御建议

  1. 输入过滤

    • command参数进行严格过滤
    • 使用白名单机制限制可执行命令
  2. 权限控制

    • 限制执行命令的用户权限
    • 使用沙箱环境执行敏感操作
  3. 代码修复

    • 移除不必要的命令执行功能
    • 使用更安全的替代方案(如特定API)
  4. 日志监控

    • 记录所有命令执行操作
    • 设置异常命令执行告警

5. 扩展审计建议

  1. 检查系统中其他使用execsystempassthru等危险函数的地方
  2. 审计所有接收外部输入并直接用于系统操作的功能点
  3. 检查文件包含、反序列化等常见漏洞点

6. 参考信息

  1. 漏洞文件位置:/mvc/lib/core.function.php
  2. 关键方法:P()execCli()
  3. 危险函数:php_exec_cli(疑似)

本报告详细分析了锐捷EWEB网管系统的命令执行漏洞,包括漏洞原理、利用方式和防御建议,可作为代码审计和安全加固的参考。

锐捷网络-EWEB网管系统代码审计报告 1. 系统路由规则分析 锐捷EWEB网管系统采用以下两种路由规则: 基于Action的路由 : 基于Controller的路由 : 示例说明 访问某个控制器的方法可以通过: 或 2. 关键漏洞分析 2.1 命令执行漏洞 漏洞位置 通过全局搜索关键词 exec 发现关键点。 漏洞原理 系统使用 P 方法(位于 /mvc/lib/core.function.php )接收POST参数 攻击者可构造以下POST参数: mode_url command answer 当 mode_url 被赋值为 exec 时,系统会将这三个参数的值传递到 /mvc/lib/core.function.php 类的 execCli 方法中 执行流程: 检查 command 参数是否存在且不为空 调用 php_exec_cli 函数(疑似系统内部函数)执行命令 利用条件 必须使用POST请求 必须包含以下参数: mode_url command (用于传递要执行的命令) answer 路由参数 a 必须设置为 index 漏洞利用示例 3. 审计步骤详解 3.1 关键点定位 全局搜索 exec 关键词 分析 /mvc/lib/core.function.php 文件 重点关注 P 方法和 execCli 方法 3.2 漏洞验证流程 确认 core.function.php 文件存在且可访问 检查 execCli 方法是否对输入参数进行了充分过滤 验证 php_exec_cli 是否可直接执行系统命令 4. 防御建议 输入过滤 : 对 command 参数进行严格过滤 使用白名单机制限制可执行命令 权限控制 : 限制执行命令的用户权限 使用沙箱环境执行敏感操作 代码修复 : 移除不必要的命令执行功能 使用更安全的替代方案(如特定API) 日志监控 : 记录所有命令执行操作 设置异常命令执行告警 5. 扩展审计建议 检查系统中其他使用 exec 、 system 、 passthru 等危险函数的地方 审计所有接收外部输入并直接用于系统操作的功能点 检查文件包含、反序列化等常见漏洞点 6. 参考信息 漏洞文件位置: /mvc/lib/core.function.php 关键方法: P() 、 execCli() 危险函数: php_exec_cli (疑似) 本报告详细分析了锐捷EWEB网管系统的命令执行漏洞,包括漏洞原理、利用方式和防御建议,可作为代码审计和安全加固的参考。