查看: 309|回复: 0

SAP NetWeaver AS Java 未授权反序列化漏洞技术分析

[复制链接]
发表于 3 天前 | 显示全部楼层 |阅读模式
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 成为突破口。








回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

指导单位

江苏省公安厅

江苏省通信管理局

浙江省台州刑侦支队

DEFCON GROUP 86025

旗下站点

邮箱系统

应急响应中心

红盟安全

联系我们

官方QQ群:112851260

官方邮箱:security#ihonker.org(#改成@)

官方核心成员

Archiver|手机版|小黑屋| ( 沪ICP备2021026908号 )

GMT+8, 2025-8-24 13:24 , Processed in 0.026409 second(s), 24 queries , Gzip On, MemCache On.

Powered by ihonker.com

Copyright © 2015-现在.

  • 返回顶部