关于Oracle WebLogic Server远程代码执行漏洞的通报

2024-09-04 03:32

本文主要是介绍关于Oracle WebLogic Server远程代码执行漏洞的通报,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

要了解Oracle Weblogic Server远程代码执行漏洞,需要了解一下Weblogic T3协议:

T3也称为丰富套接字,是BEA内部协议,功能丰富,可扩展性好。T3是多工双向和异步协议,经过高度优化,只使用一个套接字和一条线程。借助这种方法,基于Java的客户端可以根据服务器方需求使用多种RMI对象,但仍使用一个套接字和一条线程。

WebLogic Server 中的 RMI(远程方法调用) 通信使用 T3 协议在 WebLogic Server 和其他 Java 程序(包括客户端及其他 WebLogic Server 实例)间传输数据。服务器实例将跟踪所连接的每个 Java 虚拟机(Java Virtual Machine,简称 JVM),并创建单个 T3 连接以承担 JVM 的所有流量。请参阅“管理控制台联机帮助”中的配置 T3 协议。

例如,如果 Java 客户端访问 WebLogic Server 上的企业 Bean 和 JDBC 连接缓冲池,那么 WebLogic Server JVM 和客户端 JVM 之间就会建立起单个网络连接。因为 T3 协议能在单个连接上隐性地多路复用数据包,所以可以编写 EJB 和 JDBC 服务,就好像这些服务单独使用了专用网络连接。

具有有效 T3 连接的任意两个 Java 程序(例如两个服务器实例,或者一个服务器实例和一个 Java 客户端)都使用定期的点对点“心跳”来通知和确定连续可用性。每个端点定期向对等方发布“心跳”,同样也通过连续接收对等方的心跳,确定对等方是否仍然可用。

 服务器实例的心跳发布频率由心跳间隔确定,默认情况下,心跳间隔是 60 秒。 建议您不要更改超时默认值。

在等候缺少的心跳次数达到一定数量后,服务器实例将认定对等方不可用。次数由心跳时间段确定,默认次数为 4 次。因此,每个服务器实例最多等待 240 秒,或 4 分钟,若在此期间没有收到对等方的消息(心跳或其他通信),服务器实例将认定对等方不可用。

漏洞描述:

近日,国家信息安全漏洞库(CNNVD)收到Oracle WebLogic Server远程代码执行漏洞(CNNVD-201810-781、CVE-2018-3245)情况的报送。攻击者可利用该漏洞在未授权的情况下发送攻击数据,通过T3协议在WebLogic Server中执行反序列化操作,最终实现远程代码执行。WebLogic Server 10.3.6.0、12.1.3.0、12.2.1.2、12.2.1.3等版本均受漏洞影响。目前, Oracle官方已经发布补丁修复了漏洞,建议用户及时确认是否受到漏洞影响,尽快采取修补措施。

一、漏洞介绍

Oracle WebLogic Server是美国甲骨文(Oracle)公司开发的一款适用于云环境和传统环境的应用服务中间件,它提供了一个现代轻型开发平台,支持应用从开发到生产的整个生命周期管理,并简化了应用的部署和管理。

Oracle WebLogic Server存在远程代码执行漏洞(CNNVD-201810-781、CVE-2018-3245)。该漏洞通过JRMP协议利用RMI机制的缺陷达到远程代码执行的目的。攻击者可以在未授权的情况下将payload封装在T3协议中,通过对T3协议中的payload进行反序列化,从而实现对存在漏洞的WebLogic组件进行远程攻击,执行任意代码,并获取目标系统的所有权限。

二、危害影响

攻击者可利用漏洞在未授权的情况下发送攻击数据,通过T3协议在WebLogic Server中执行反序列化操作,最终实现远程代码执行。该漏洞涉及了多个版本,具体受影响版本如下:

Oracle WebLogic Server 10.3.6.0

Oracle WebLogic Server 12.1.3.0

Oracle WebLogic Server 12.2.1.2

Oracle WebLogic Server 12.2.1.3

 三、修复建议

目前, Oracle官方已经发布补丁修复了漏洞,建议用户及时确认是否受到漏洞影响,尽快采取修补措施。

1、Oracle官方更新链接如下:

https://www.oracle.com/technetwork/security-advisory/cpuoct2018-4428296.html

2、临时解决方案

通过设置weblogic.security.net.ConnectionFilterImpl默认连接筛选器,对T3/T3s协议的访问权限进行配置,阻断漏洞利用途径。具体如下:

(a)进入WebLogic控制台,在base_domain的配置页面中,进入“安全”选项卡页面,点击“筛选器”,进入连接筛选器配置。

(b)在连接筛选器中输入:WebLogic.security.net.ConnectionFilterImpl,在连接筛选器规则中输入:* * 7001 deny t3 t3s

(c)保存后重新启动即可生效。

这篇关于关于Oracle WebLogic Server远程代码执行漏洞的通报的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1134872

相关文章

Oracle数据库使用 listagg去重删除重复数据的方法汇总

《Oracle数据库使用listagg去重删除重复数据的方法汇总》文章介绍了在Oracle数据库中使用LISTAGG和XMLAGG函数进行字符串聚合并去重的方法,包括去重聚合、使用XML解析和CLO... 目录案例表第一种:使用wm_concat() + distinct去重聚合第二种:使用listagg,

oracle中exists和not exists用法举例详解

《oracle中exists和notexists用法举例详解》:本文主要介绍oracle中exists和notexists用法的相关资料,EXISTS用于检测子查询是否返回任何行,而NOTE... 目录基本概念:举例语法pub_name总结 exists (sql 返回结果集为真)not exists (s

Xshell远程连接失败以及解决方案

《Xshell远程连接失败以及解决方案》本文介绍了在Windows11家庭版和CentOS系统中解决Xshell无法连接远程服务器问题的步骤,在Windows11家庭版中,需要通过设置添加SSH功能并... 目录一.问题描述二.原因分析及解决办法2.1添加ssh功能2.2 在Windows中开启ssh服务2

Oracle的to_date()函数详解

《Oracle的to_date()函数详解》Oracle的to_date()函数用于日期格式转换,需要注意Oracle中不区分大小写的MM和mm格式代码,应使用mi代替分钟,此外,Oracle还支持毫... 目录oracle的to_date()函数一.在使用Oracle的to_date函数来做日期转换二.日

oracle数据库索引失效的问题及解决

《oracle数据库索引失效的问题及解决》本文总结了在Oracle数据库中索引失效的一些常见场景,包括使用isnull、isnotnull、!=、、、函数处理、like前置%查询以及范围索引和等值索引... 目录oracle数据库索引失效问题场景环境索引失效情况及验证结论一结论二结论三结论四结论五总结ora

Oracle Expdp按条件导出指定表数据的方法实例

《OracleExpdp按条件导出指定表数据的方法实例》:本文主要介绍Oracle的expdp数据泵方式导出特定机构和时间范围的数据,并通过parfile文件进行条件限制和配置,文中通过代码介绍... 目录1.场景描述 2.方案分析3.实验验证 3.1 parfile文件3.2 expdp命令导出4.总结

SQL Server数据库磁盘满了的解决办法

《SQLServer数据库磁盘满了的解决办法》系统再正常运行,我还在操作中,突然发现接口报错,后续所有接口都报错了,一查日志发现说是数据库磁盘满了,所以本文记录了SQLServer数据库磁盘满了的解... 目录问题解决方法删除数据库日志设置数据库日志大小问题今http://www.chinasem.cn天发

Python实现局域网远程控制电脑

《Python实现局域网远程控制电脑》这篇文章主要为大家详细介绍了如何利用Python编写一个工具,可以实现远程控制局域网电脑关机,重启,注销等功能,感兴趣的小伙伴可以参考一下... 目录1.简介2. 运行效果3. 1.0版本相关源码服务端server.py客户端client.py4. 2.0版本相关源码1

Oracle数据库执行计划的查看与分析技巧

《Oracle数据库执行计划的查看与分析技巧》在Oracle数据库中,执行计划能够帮助我们深入了解SQL语句在数据库内部的执行细节,进而优化查询性能、提升系统效率,执行计划是Oracle数据库优化器为... 目录一、什么是执行计划二、查看执行计划的方法(一)使用 EXPLAIN PLAN 命令(二)通过 S

Oracle type (自定义类型的使用)

oracle - type   type定义: oracle中自定义数据类型 oracle中有基本的数据类型,如number,varchar2,date,numeric,float....但有时候我们需要特殊的格式, 如将name定义为(firstname,lastname)的形式,我们想把这个作为一个表的一列看待,这时候就要我们自己定义一个数据类型 格式 :create or repla