当前位置: 首页 > news >正文

CVE-2019-2729反序列化(unserialize)漏洞学习与分析

文章目录

  • 序列化和反序列化
  • CVE-2019-2729漏洞分析
    • 漏洞背景
    • 漏洞成因
    • 影响范围
    • 漏洞利用细节
    • 补丁分析
  • 防御措施与实践建议
    • 通用防御策略
    • 针对Java反序列化的专门防御
    • WebLogic特定防护
  • 总结与启示
    • 参考文章

序列化和反序列化

  • 序列化(Serialization)是指将数据结构或对象状态转换为可以存储或传输的格式的过程,通常是二进制字节流,也可以是JSON、XML等文本格式。反序列化(Deserialization)则是将序列化过程中生成的数据恢复为原始数据结构或对象的过程。
  • 序列化的主要应用场景包括:对象持久化存储(如保存到文件或数据库)、网络传输对象(如RPC调用)、内存中对象状态保存。
  • 在Java环境中,序列化是通过ObjectOutputStream类的writeObject()方法将对象转化为字节流,而反序列化则是通过ObjectInputStream类来实现的。
    在这里插入图片描述
  • 反序列化漏洞的核心问题是:当应用程序反序列化不受信任或恶意构造的数据时,可能导致任意代码执行、敏感信息泄露或拒绝服务攻击。
  • 主要安全风险包括:
    • 远程代码执行:攻击者可通过构造特殊的序列化数据,在反序列化过程中触发恶意代码
    • 敏感数据泄露:序列化过程会暴露对象所有字段,包括私有字段中的敏感信息
    • 拒绝服务攻击:精心构造的序列化数据可能导致资源耗尽

CVE-2019-2729漏洞分析

漏洞背景

  • CVE-2019-2729是Oracle WebLogic Server中的一个高危反序列化漏洞,CVSS评分为9.8。该漏洞是对CVE-2019-2725补丁的绕过,属于XMLDecoder反序列化漏洞的变种(weblogic 反序列化(CVE-2019-2729)复现原创)。

漏洞成因

  • 漏洞存在于WebLogic Server的wls9_async_response.war和wls-wsat.war组件中,攻击者可通过发送精心构造的恶意HTTP请求,在未授权情况下实现远程代码执行(Weblogic反序列化远程代码执行漏洞(CVE-2019-2729))。

漏洞利用链的关键点:

  1. WebLogic的异步通信服务(_async/AsyncResponseService)接收XML格式的SOAP请求
  2. XML数据通过WorkContextXmlInputAdapter处理,使用XMLDecoder进行反序列化
  3. 攻击者可以构造特殊的XML标签绕过补丁检查,执行任意Java代码

影响范围

受影响版本包括:

  • Oracle WebLogic Server 10.3.6.0.0
  • Oracle WebLogic Server 12.1.3.0.0
  • Oracle WebLogic Server 12.2.1.3.0

漏洞利用细节

  • CVE-2019-2729是对CVE-2019-2725补丁的绕过。在修复CVE-2019-2725时,Oracle通过黑名单过滤了<class>标签,但攻击者发现可以使用<array method="forName">标签实现相同功能(CVE-2019-2729 Weblogic XMLDecoder反序列化漏洞分析)。

典型的攻击流程:

  1. 攻击者构造包含恶意XML的SOAP请求
  2. 请求发送到WebLogic的漏洞端点(如/_async/AsyncResponseService)
  3. WebLogic解析XML时,XMLDecoder执行恶意代码
  4. 攻击者获得服务器权限

补丁分析

Oracle最终通过引入白名单机制修复此漏洞:

  1. 新增validateFormat函数,严格限制可用的XML标签和属性
  2. 白名单仅允许特定标签和属性,如<array>标签只能包含"class"或"length"属性
  3. 彻底禁止了可能被利用的标签(CVE-2019-2729:使用白名单修复Oracle WebLogic中的RCE漏洞)

防御措施与实践建议

通用防御策略

  1. 输入验证:对所有反序列化操作进行严格的输入验证
  2. 使用安全序列化协议:考虑使用Protobuf、Kryo等更安全的序列化方案(常见的序列化协议以及高性能Kryo实战原创)
  3. 最小权限原则:反序列化操作应运行在最小权限环境中
  4. 日志监控:记录所有反序列化操作,监控异常行为

针对Java反序列化的专门防御

  1. 使用JEP290机制:JDK 6u141、7u131和8u121引入了JEP290,可设置反序列化过滤器(使用JEP290防御Java反序列化)
    // 示例:设置反序列化过滤器
    ObjectInputFilter filter = ObjectInputFilter.Config.createFilter("maxdepth=10;!com.example.*");
    ObjectInputFilter.Config.setSerialFilter(filter);
    
  2. 更新JDK版本:使用最新JDK版本,包含更多安全增强
  3. 安全编码实践
    • 避免反序列化不可信数据
    • 对必须序列化的敏感字段使用transient标记
    • 自定义readObject方法时要特别小心

WebLogic特定防护

  1. 应用官方补丁:及时安装Oracle发布的安全补丁
  2. 删除危险组件:删除wls9_async_response.war和wls-wsat.war文件
  3. 访问控制:通过防火墙限制对WebLogic管理端口的访问
  4. 网络隔离:将WebLogic服务器放置在DMZ区域,限制外部访问

总结与启示

  • CVE-2019-2729漏洞展示了反序列化漏洞的严重性和复杂性。从防御角度看,黑名单机制往往难以全面防御,而白名单机制更为可靠。开发者应当:
  1. 充分认识反序列化操作的安全风险
  2. 优先使用安全的替代方案(如REST API+JSON)
  3. 保持中间件和JDK的及时更新
  4. 实施深度防御策略,结合多种安全措施
  • 反序列化安全问题在WebLogic中并非孤例,从CVE-2017-3506到CVE-2019-2729,这一系列漏洞提醒我们:安全设计应当从源头开始,而非依赖后期的补丁修复(Remediating an RCE (CVE-2019-2729) in Oracle WebLogic)。

参考文章

  • [1] Java 序列化详解
  • [2] 深入探讨Java序列化的安全性问题与解决方案
  • [3] weblogic 反序列化(CVE-2019-2729)复现原创
  • [4] Weblogic反序列化远程代码执行漏洞(CVE-2019-2729)
  • [5] CVE-2019-2729 Weblogic XMLDecoder反序列化漏洞分析
  • [6] CVE-2019-2729:使用白名单修复Oracle WebLogic中的RCE漏洞
  • [7] 常见的序列化协议以及高性能Kryo实战原创
  • [8] 使用JEP290防御Java反序列化
  • [9] Remediating an RCE (CVE-2019-2729) in Oracle WebLogic
http://www.dtcms.com/a/474212.html

相关文章:

  • 一流的句容网站建设自己做的网站找不到了
  • TDengine 数学函数 CEIL 用户手册
  • 石家庄好用的招聘网站做网站网站会被判多久
  • 北京平台网站建设代运营公司介绍
  • AI编程作品:Android 极简秒表应用
  • 网络五子棋对战游戏测试报告
  • html做网站的原则自建站排名
  • 互联网彩票网站开发珠海seo关键词排名
  • springboot095交通事故档案管理系统lgl(源码+部署说明+演示视频+源码介绍+lw)
  • 新郑郑州网站建设铭讯网站建设
  • 在next项目中使用iconfont图标方法
  • 重新定义AI编程协作:深入解析Claude Code多智能体系统架
  • 深入解析如何高效处理PDF?
  • uniapp运行微信小程序uni为什么是undefined
  • 2100AI智能生活(下)
  • 什么是后端开发-常见问题
  • 产品做优化好还是超级网站好WordPress来应力
  • wordpress 慢2017郴州网站seo优化
  • 05_零基础搭建AI智能体开发环境:全网开源资源完全指南
  • UDSONIP学习
  • 照片网站cmswordpress 做问卷
  • 除了crontab,如何实现自动化MySQL备份?
  • 积分器电路(波形转换电路)
  • 免费远程新标杆:UU远程对比ToDesk、向日葵,个人体验更优
  • 做视频网站的服务器深圳福田地址随便来一个
  • Git介绍和使用
  • LeetCode经典算法题解详解
  • Java基于SpringBoot的农场管理系统小程序【附源码、文档说明】
  • 建站系统社区网站建设建站在线建站
  • 数字政府智慧政务服务跨省通办建设方案PPT(46页)