泛微后台RCE漏洞分析
字数 1404 2025-12-26 12:09:54

泛微后台RCE漏洞分析与利用教学

漏洞概述

本漏洞存在于泛微OA系统的移动模式模块,通过SQL插入注入结合Higo JDBC连接实现远程代码执行。漏洞利用链包含三个关键环节:SQL注入绕过、文件上传加载恶意XML、JDBC连接触发RCE。

环境准备

  • 目标系统:泛微OA系统
  • 测试地址:http://192.168.188.133
  • 关键路径:/wui/engine.html#/mobilemode

漏洞利用详细步骤

第一步:访问移动模式设计页面

  1. 访问路径:http://192.168.188.133/wui/engine.html#/mobilemode
  2. 此路径会显示e-mobile设计页面
  3. 创建应用后点击"设计"功能

第二步:SQL注入绕过检测机制

  1. 原始SQL语句检测位置:isSafeSql方法
  2. 绕过方法:新建数据源绕过安全检测
  3. 注入点:saveHomepageContent方法

具体操作:

  1. 在设计页面插入SQL语句
  2. 点击预览触发请求:
    http://192.168.188.133/mobilemode/mobile/server.jsp?invoker=Y29tLmFwaS5tb2JpbGVtb2RlLndlYi5tb2JpbGUuc2VydmljZS5Nb2JpbGVDb21tb25BY3Rpb24=&&_ec_ismobile=true
    
  3. Base64解码invoker参数得到:com.api.mobilemode.web.mobile.service.MobileCommonAction

第三步:执行INSERT注入

  1. 构造INSERT语句插入恶意数据到数据库
  2. 验证注入成功:查询数据库确认数据插入
  3. 数据库会新增相关记录

第四步:文件上传准备

  1. 上传路径:/api/portal/materialLib/uploadFile
  2. 上传恶意XML文件(使用Spring2漏洞格式)
  3. 上传目录:c:/weaver/ecology/page/resource/userfile
  4. 测试效果:上传包含计算器触发代码的XML文件

第五步:JDBC RCE利用

  1. 新建数据源配置恶意JDBC连接
  2. 构造特殊数据源参数:
    • 系统会根据type值从数据库查找JDBC连接字符串
    • 动态填充driverclass和driverurl参数
  3. Higo Driver本质:实际上是PostgreSQL驱动

技术细节:

  • 利用Higo驱动特性实现RCE
  • 系统会从数据库读取配置并动态建立连接
  • 连接过程中触发恶意代码执行

第六步:绕过执行限制

  1. 问题:泛微安全机制会抛出异常,阻止cmd命令执行
  2. 解决方案:注入内存马实现持久化控制

第七步:内存马注入

  1. 工具准备:使用JMX或类似工具生成内存马数据
  2. 生成XMLDecodePayload
  3. 数据处理:JavaChains生成的数据需要两层封装处理
  4. 连接验证:成功建立连接后确认控制权限

关键技术点说明

SQL注入绕过技术

  • 利用新建数据源绕过isSafeSql检测
  • INSERT注入修改关键配置数据
  • 数据库操作直接影响系统行为

文件上传利用

  • Spring2 XML漏洞格式利用
  • 上传目录权限控制分析
  • XML文件解析触发机制

JDBC连接RCE原理

  • Higo驱动动态加载机制
  • 数据库配置读取流程
  • 驱动类实例化过程中的代码执行点

内存马技术

  • 内存驻留技术原理
  • 绕过安全检测的方法
  • 持久化控制实现方式

防御建议

  1. 加强SQL注入过滤,特别是数据源操作
  2. 限制文件上传类型和目录权限
  3. 监控JDBC连接配置变更
  4. 实施内存马检测机制
  5. 定期更新安全补丁

总结

该漏洞利用链展示了从SQL注入到RCE的完整攻击路径,涉及多个系统组件的安全缺陷。理解每个环节的技术细节对于防御类似攻击具有重要意义。

泛微后台RCE漏洞分析与利用教学 漏洞概述 本漏洞存在于泛微OA系统的移动模式模块,通过SQL插入注入结合Higo JDBC连接实现远程代码执行。漏洞利用链包含三个关键环节:SQL注入绕过、文件上传加载恶意XML、JDBC连接触发RCE。 环境准备 目标系统:泛微OA系统 测试地址:http://192.168.188.133 关键路径: /wui/engine.html#/mobilemode 漏洞利用详细步骤 第一步:访问移动模式设计页面 访问路径: http://192.168.188.133/wui/engine.html#/mobilemode 此路径会显示e-mobile设计页面 创建应用后点击"设计"功能 第二步:SQL注入绕过检测机制 原始SQL语句检测位置: isSafeSql 方法 绕过方法:新建数据源绕过安全检测 注入点: saveHomepageContent 方法 具体操作: 在设计页面插入SQL语句 点击预览触发请求: Base64解码invoker参数得到: com.api.mobilemode.web.mobile.service.MobileCommonAction 第三步:执行INSERT注入 构造INSERT语句插入恶意数据到数据库 验证注入成功:查询数据库确认数据插入 数据库会新增相关记录 第四步:文件上传准备 上传路径: /api/portal/materialLib/uploadFile 上传恶意XML文件(使用Spring2漏洞格式) 上传目录: c:/weaver/ecology/page/resource/userfile 测试效果:上传包含计算器触发代码的XML文件 第五步:JDBC RCE利用 新建数据源配置恶意JDBC连接 构造特殊数据源参数: 系统会根据type值从数据库查找JDBC连接字符串 动态填充driverclass和driverurl参数 Higo Driver本质:实际上是PostgreSQL驱动 技术细节: 利用Higo驱动特性实现RCE 系统会从数据库读取配置并动态建立连接 连接过程中触发恶意代码执行 第六步:绕过执行限制 问题:泛微安全机制会抛出异常,阻止cmd命令执行 解决方案:注入内存马实现持久化控制 第七步:内存马注入 工具准备:使用JMX或类似工具生成内存马数据 生成XMLDecodePayload 数据处理:JavaChains生成的数据需要两层封装处理 连接验证:成功建立连接后确认控制权限 关键技术点说明 SQL注入绕过技术 利用新建数据源绕过 isSafeSql 检测 INSERT注入修改关键配置数据 数据库操作直接影响系统行为 文件上传利用 Spring2 XML漏洞格式利用 上传目录权限控制分析 XML文件解析触发机制 JDBC连接RCE原理 Higo驱动动态加载机制 数据库配置读取流程 驱动类实例化过程中的代码执行点 内存马技术 内存驻留技术原理 绕过安全检测的方法 持久化控制实现方式 防御建议 加强SQL注入过滤,特别是数据源操作 限制文件上传类型和目录权限 监控JDBC连接配置变更 实施内存马检测机制 定期更新安全补丁 总结 该漏洞利用链展示了从SQL注入到RCE的完整攻击路径,涉及多个系统组件的安全缺陷。理解每个环节的技术细节对于防御类似攻击具有重要意义。