SAP NetWeaver AS Java 未授权反序列化漏洞技术分析 —— CVE-2025-31324
1. 漏洞背景
SAP NetWeaver AS Java 作为 SAP 企业应用的核心运行平台,暴露了一系列开发与调试相关的服务接口。
其中 MetadataUploader 组件(路径 /developmentserver/metadatauploader)被设计用于上传元数据文件。
在默认配置下,该端点未强制鉴权。攻击者可直接上传特制 ZIP 包,触发底层 Java 对象反序列化流程,从而实现远程代码执行(RCE)。
漏洞影响范围涵盖 Visual Composer Framework 7.1x 及以上版本。
2. 漏洞根因与触发机制
2.1 不安全的反序列化入口
MetadataUploader 在处理上传 ZIP 时,会尝试读取 .properties 文件内容,内部使用 Java ObjectInputStream 或类似机制来反序列化属性对象。
这一过程缺乏:
- 类型白名单
- gadget 过滤
- 安全沙箱
导致攻击者可构造任意对象流,引入恶意 gadget 链。
2.2 可利用的 gadget 链
PoC 中的序列化 payload 明显参考了 ysoserial 的 gadget 链(例如 CommonsCollections 系列)。
特征:字节流中有大量固定模式的 0xACED 0x0005(Java 序列化魔数)+ 类描述结构。
为规避检测,作者将关键字符串(如 ysoserial、gadget)替换为混淆词。
2.3 版本差异 (7.4 vs 7.5)
- SAP 7.4:直接接受原始序列化结构。
- SAP 7.5:内部对象类签名(serialVersionUID)不同。若传入 7.4 的 payload,会触发 InvalidClassException。
PoC 脚本通过匹配返回体中的 serialVersionUID = -7308740002576184038 判断版本,并替换 payload 中的 8 字节 UID 值后重试。
3. PoC 技术细节分析
3.1 载荷生成逻辑
脚本中有三段 Base64 编码字节块:h1、h2、tail。
整体结构: [h1] + [payload_size字段] + [payload数据] + [h2] + [tail]
3.2 内存 ZIP 打包
- 使用 zipfile.ZipFile 创建临时 ZIP,文件名固定为 .properties。
- 文件内容即为拼接好的序列化对象流。
3.3 利用请求细节
- 目标端点:
POST /developmentserver/metadatauploader?CONTENTTYPE=MODEL&CLIENT=1
- 请求头:
Content-Type: application/octet-stream
- 请求体: 恶意 ZIP 文件
3.4 成功判定逻辑
- 命令执行: 返回体中包含
"Cause - Getter getOutputProperties"
- WebShell 落地: 上传到
../apps/sap.com/irj/servlet_jsp/irj/root/随机>.jsp
并通过 ?cmd= 调用
4. 攻击链条还原
1. 攻击者构造恶意序列化对象流并封装为 .properties ZIP。
2. 匿名 POST 请求上传至 metadatauploader 接口。
3. SAP 服务端自动解压并触发反序列化 → gadget 链执行。
4. 利用结果:
- RCE: 直接执行系统命令。
- 持久化: 落地 JSP WebShell。
5. 攻击迹象(IoC)
- 流量特征:
- 未经认证的
POST /developmentserver/metadatauploader
- 上传体仅含单个 .properties
- 响应特征:
- "Cause - Getter getOutputProperties"
- "serialVersionUID = -7308740002576184038"
- 落地文件:
- /irj/root/*.jsp
- 含
Runtime.getRuntime().exec, request.getParameter("cmd")
6. 防御与缓解
1. 官方修复:
- 安装 SAP Security Note 3594142 (CVE-2025-31324) 和 3604119 (CVE-2025-42999)。
2. 临时措施:
- 禁用或删除 Visual Composer MetadataUploader。
- 阻断公网访问 /developmentserver/metadatauploader。
3. 检测:
- 日志监控可疑上传。
- 文件完整性监控 /irj/root/。
- YARA 匹配 WebShell。
4. 应急处置:
- 若发现 WebShell,立即隔离、回溯并重置凭据。
7. 总结
CVE-2025-31324 危害严重:
- 利用门槛低:匿名即可触发。
- 利用效果强:可直接 RCE 或写入 WebShell。
- 攻击已在野外活跃:多家安全厂商确认。
必须立即采取措施:补丁、加固、排查,以避免 SAP Portal 成为突破口。
评论 (0)