泛微后台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
漏洞利用详细步骤
第一步:访问移动模式设计页面
- 访问路径:
http://192.168.188.133/wui/engine.html#/mobilemode - 此路径会显示e-mobile设计页面
- 创建应用后点击"设计"功能
第二步:SQL注入绕过检测机制
- 原始SQL语句检测位置:
isSafeSql方法 - 绕过方法:新建数据源绕过安全检测
- 注入点:
saveHomepageContent方法
具体操作:
- 在设计页面插入SQL语句
- 点击预览触发请求:
http://192.168.188.133/mobilemode/mobile/server.jsp?invoker=Y29tLmFwaS5tb2JpbGVtb2RlLndlYi5tb2JpbGUuc2VydmljZS5Nb2JpbGVDb21tb25BY3Rpb24=&&_ec_ismobile=true - 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的完整攻击路径,涉及多个系统组件的安全缺陷。理解每个环节的技术细节对于防御类似攻击具有重要意义。