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

Weblogic 反序列化远程命令执行漏洞 CVE-2019-2725 详解

Weblogic 反序列化远程命令执行漏洞 CVE-2019-2725 详解

一、漏洞背景

        2019 年 4 月 17 日,国家信息安全漏洞共享平台(CNVD)收录了由中国民生银行股份有限公司报送的 Oracle WebLogic wls9-async 反序列化远程命令执行漏洞(CNVD-C-2019-48814),对应的 CVE 编号为 CVE-2019-2725 ,该漏洞危险级别为高危,CVSS 分值高达 9.8。

        WebLogic Server 是 Oracle 公司推出的一款应用服务器,广泛应用于企业级应用的开发与部署。其中,wls9-async 组件为 WebLogic Server 提供异步通讯服务,默认应用于部分 WebLogic 版本。然而,正是这个组件在反序列化处理输入信息时存在严重缺陷,给攻击者留下了可乘之机。

二、漏洞原理

2.1 反序列化基础概念

        在 Java 中,对象的序列化是指将对象转换为字节序列的过程,以便能够在网络上传输或存储到文件中。而反序列化则是其逆过程,将字节序列重新转换为对象。正常情况下,反序列化机制能够正确地还原对象,但如果输入的字节序列被恶意构造,就可能导致程序执行攻击者指定的代码,这就是反序列化漏洞的核心原理。

2.2 漏洞触发流程

        对于 CVE-2019-2725 漏洞而言,当 WebLogic 服务器接收到针对 wls9-async 组件的恶意 HTTP 请求时,请求中的数据会被服务器进行反序列化处理。具体来说,攻击者通过发送精心构造的恶意 HTTP 请求到

<代码开始>/_async/AsyncResponseService< 代码结束 >

路径,请求中包含经过特殊构造的 XML 格式数据。服务器在对这些数据进行反序列化时,会按照 XMLDecoder 的解析规则进行处理。在解析过程中,攻击者利用了 WebLogic 安装包中默认 SDK 为 1.6 版本(在 JDK 版本 <=JDK7u21 前提下存在 Java 原生类反序列化漏洞)的特性,成功绕过了之前版本补丁(如 CVE-2017-3506 和 CVE-2017-10271 补丁)中设置的黑名单机制。

        以 CVE-2017-10271 补丁为例,官方在该补丁中加入了对 object、new、method 等关键字的黑名单限制,一旦解析 XML 元素过程中匹配到上述任意一个关键字就立即抛出运行时异常。但是本次漏洞利用了 Class 元素指定任意类名,并且 UnitOfWorkChangeSet 类构造方法中直接调用了 JDK 原生类中的 readObject () 方法,其构造方法的接收参数恰好是字节数组,满足了补丁中 array 标签的 class 属性值必须为 byte 的要求,再借助带 index 属性的 void 元素,完成向字节数组中赋值恶意序列化对象的过程,最终利用 JDK 7u21 反序列化漏洞造成了远程代码执行。

三、漏洞危害

3.1 权限获取

        由于该漏洞允许攻击者在未授权的情况下远程执行命令,一旦成功利用,攻击者将获得目标服务器的权限。这意味着攻击者可以完全控制服务器,对服务器上的文件、数据进行任意操作,如读取敏感信息(企业机密文件、用户数据等)、修改系统配置、删除重要文件等。

3.2 横向渗透

        若目标服务器处于企业内网环境中,攻击者获得服务器权限后,可以此为跳板,进一步对内网其他主机进行扫描和攻击,尝试获取更多系统权限,实现横向渗透,扩大攻击范围,给企业网络安全带来严重威胁。例如,攻击者可以通过内网扫描发现其他存在漏洞的服务器或设备,利用已知漏洞进行攻击,逐步控制整个内网。

3.3 植入恶意软件

        攻击者还可能利用获得的权限在服务器上植入恶意软件,如木马、病毒、勒索软件等。植入木马后,攻击者可以持续监控服务器的活动,窃取更多信息;植入勒索软件则可能加密服务器上的重要数据,向企业索要赎金,给企业带来巨大的经济损失。

四、漏洞检测

4.1 端口及路径检测

        首先,可以通过扫描目标服务器的 WebLogic 默认端口(如 7001 等)来确定是否存在 WebLogic 服务。然后,尝试访问

<代码开始>/_async/AsyncResponseService< 代码结束 >

路径,如果返回 403 状态码,很大可能表示服务器存在该漏洞所涉及的组件(注意,此方法并非绝对准确判断漏洞存在的依据,仅作为初步检测参考)。

4.2 利用工具检测

        使用专业的漏洞扫描工具,如 Nessus、OpenVAS 等,这些工具通常会包含针对 CVE-2019-2725 漏洞的检测插件。配置好扫描任务后,工具会向目标服务器发送特定的检测请求,根据服务器的响应来判断是否存在该漏洞。另外,在一些安全研究社区或 GitHub 上也有专门针对此漏洞编写的检测脚本,如 Python 编写的 PoC 脚本,可根据实际情况下载并使用,但在使用外部脚本时要注意来源的可靠性,避免引入新的安全风险。

五、漏洞修复

5.1 安装官方补丁

        官方发布了针对此漏洞的紧急修复补丁,及时打上官方 CVE-2019-2725 补丁包是最直接有效的修复方式。补丁下载地址:https://www.oracle.com/technetwork/security-advisory/alert-cve-2019-2725-5466295.html 。在安装补丁前,建议先在测试环境中进行充分测试,确保补丁不会对现有业务系统造成兼容性问题。

5.2 升级 JDK 版本

        WebLogic 所采用的是其安装文件中默认 1.6 版本的 JDK 文件,该版本存在反序列化漏洞。因此,升级到 JDK7u21 以上版本可以避免由于 Java 原生类反序列化漏洞造成的远程代码执行。但同样需要注意,在升级 JDK 版本后,要对业务系统进行全面测试,以确保系统能够正常运行。

六、总结

        CVE-2019-2725 漏洞作为 WebLogic 的一个严重安全隐患,给企业的网络安全带来了巨大威胁。了解该漏洞的原理、危害、检测及修复方法,对于保障 WebLogic 服务器的安全至关重要。在日常运维过程中,企业应密切关注安全漏洞信息,及时采取有效的防护措施,定期对服务器进行安全检测和漏洞扫描,确保系统的安全性和稳定性,防止因类似漏洞被攻击者利用而造成不可挽回的损失。

相关文章:

  • 【25软考网工】第六章(5)应用层安全协议
  • vue 中绑定样式 【class样式绑定】
  • 【Ubuntu】扩充磁盘大小
  • langchain提示词的使用
  • 《算法导论(第4版)》阅读笔记:p39-p48
  • 电子电器架构 --- 区域计算架构(Zonal Compute)备战下一代电子电气架构
  • 重庆医科大学附属第二医院外科楼外挡墙自动化监测
  • 保护数据安全的关键一步-安装加密软件
  • 修复aosp中QQ无法跳转到短信的问题
  • 【android bluetooth 框架分析 02】【Module详解 6】【StorageModule 模块介绍】
  • 关于 js:8. 反调试与混淆识别
  • 基于javaweb的SpringBoot酒店管理系统设计与实现(源码+文档+部署讲解)
  • [51单片机]---DS18B20 温度检测
  • MYSQL 的缓存策略(四)
  • python视频拆帧并根据所选区域保存指定区域
  • Memcached 的特性和使用场景介绍,以及集群搭建
  • 基于机器学习的卫星钟差预测方法研究HPSO-BP
  • 腾讯发布数字人框架MuseTalk 1.5,开放训练逻辑,生成效果进一步优化~
  • MCP Server多节点滚动升级一致性治理
  • 爆肝整理!软件测试面试题整理(项目+接口问题)
  • 山东市监局回应“盒马一批次‘无抗’鸡蛋抽检不合格后复检合格”:系生产商自行送检
  • 中国至越南河内国际道路运输线路正式开通
  • 首映|奥斯卡最佳国际影片《我仍在此》即将公映
  • 日本广岛大学一处拆迁工地发现疑似未爆弹
  • 图讯丨习近平出席中国-拉美和加勒比国家共同体论坛第四届部长级会议开幕式
  • 沙县小吃中东首店在沙特首都利雅得开业,首天营业额超5万元