用友U8Cloud所有版本ServiceDispatcherServlet反序列化补丁绕过文件上传漏洞
字数 2106 2025-11-28 12:09:41
用友U8Cloud ServiceDispatcherServlet反序列化补丁绕过文件上传漏洞分析
漏洞概述
产品简介
用友U8 Cloud是用友推出的新一代云ERP系统,主要聚焦成长型、创新型企业,提供企业级云ERP整体解决方案。该系统全面支持多组织业务协同、营销创新、智能财务、人力服务,构建产业链制造平台。
漏洞性质
这是一个高危的安全漏洞,攻击者可以通过利用易受攻击的代码,绕过系统鉴权机制并实现任意文件上传,从而造成严重的系统损害。
影响版本
- 2.0、2.1、2.3、2.5、2.6、2.65、2.7
- 3.0、3.1、3.2、3.5、3.6
- 5.0、5.0sp、5.1、5.1sp
技术背景
路由分发机制
在U8Cloud系统中,路由分发通过nc.bs.framework.comn.serv.ServiceDispatcher#execCall方法进行调度执行。在执行具体业务方法之前,系统会通过TokenUtil#vertifyToken方法进行鉴权验证。
原鉴权机制分析
原有的鉴权方式采用Token验证机制:
- 系统将Token种子与用户名进行MD5哈希计算
- 将计算结果转换为16进制格式进行比较
- 验证通过后方可执行后续操作
补丁分析
补丁修改内容
官方补丁共修改了三处关键位置:
1. TokenUtil类构造方法修改
- 文件:
fw.jar中的nc.bs.framework.server.token.TokenUtil类 - 原行为:从
${NCHOME}/ierp/bin/token/tokenSeed.conf配置文件读取Token种子 - 修改后:改为从
${NCHOME}/ierp/bin/token/Tenant.properties配置文件读取tenantId租户字段
2. 配置文件更新
- 文件:
${NCHOME}/ierp/bin/token/trustServiceList.conf - 内容:更新了可信服务列表配置
3. 文件上传路径限制
- 文件:
nc.impl.hr.tools.trans.FileTransImpl类 - 修改:在
FileTransImpl#uploadFile方法中增加了路径检查,限制写入文件不能位于Web目录
硬编码Token漏洞
通过代码分析和线上环境确认,原系统存在硬编码Token种子的安全漏洞,固定值为:ab7d823e-03ef-39c1-9947-060a0a08b931
漏洞利用细节
反序列化过程分析
ServiceDispatcher#execCall方法在通过反序列化还原InvocationInfo对象时使用了自定义的重写方法:
- 使用
nc.bs.framework.comn.NetObjectInputStream#readInt方法读取反序列化的字节长度 - 通过读取前四个字节进行位移运算来确定数据长度
攻击步骤
第一步:构造恶意InvocationInfo对象
- 创建InvocationInfo对象实例
- 指定要调用的服务名称和方法名称
- 设置相关参数为恶意内容
第二步:准备Webshell文件
- 生成包含Webshell的压缩包文件
- 特别指定文件路径为Web可访问目录
第三步:序列化攻击载荷
- 将构造好的InvocationInfo对象进行序列化
- 在序列化数据开头添加长度信息(4字节)
第四步:发送攻击请求
- 通过ServiceDispatcherServlet接口发送恶意序列化数据
- 绕过鉴权机制执行文件上传操作
第五步:访问Webshell
通过直接访问上传的Webshell文件路径获得系统控制权
漏洞验证方法
环境检测
- 确认目标系统为受影响版本的用友U8Cloud
- 检查系统补丁安装情况
安全测试
- 构造特定的序列化数据包
- 向ServiceDispatcherServlet接口发送测试请求
- 验证是否能够绕过鉴权机制
- 检查文件上传功能是否受限
防护方案
立即措施
- 安装官方发布的安全补丁:
U8cloud所有版本ServiceDispatcherServlet反序列化补丁绕过实现文件上传漏洞的安全补丁
长期防护策略
- 及时更新补丁:关注用友官方安全公告,及时安装最新安全补丁
- 网络层防护:限制对ServiceDispatcherServlet接口的非法访问
- 文件系统监控:加强对Web目录的文件变更监控
- 权限最小化:确保应用程序以最小必要权限运行
- 输入验证:加强对反序列化数据的合法性验证
安全配置建议
- 定期检查Token生成机制的安全性
- 监控系统日志中的异常反序列化操作
- 实施文件完整性监控
- 建立安全更新机制
参考资源
- 用友官方安全公告:关于U8cloud所有版本存在ServiceDispatcherServlet反序列化补丁绕过实现文件上传漏洞的安全公告
- 漏洞相关技术分析和利用代码
总结
该漏洞结合了反序列化漏洞和文件上传漏洞的特点,通过绕过鉴权机制实现远程代码执行。由于用友U8Cloud系统通常承载企业核心业务数据,此漏洞的危害性极高,需要企业及时采取防护措施。