Weblogic之反序列化高危漏洞(websphere反序列化)
mhr18 2024-10-05 17:49 21 浏览 0 评论
一、WebLogic Server Security Alert
安全问题描述
WebLogic Server反序列化安全漏洞补丁:CVE-2015-4852;
Apache Commons Collections 3和4,Groovy,Spring,只要目标应用的Class Path中包含这些库,可让readObject()实现任意命令执行。影响比较广泛的就是Apache Commons Collections这个库,中间件基本都会涉及使用此库。
受影响的WLS版本
Oracle WebLogic Server, 版本9及10.0.1mp,10.0.2mp,10.3.2,10.3.3,10.3.4.X10.3.5.X,10.3.6.X, 12.1.1.X,12.1.2.X, 12.1.3.X, 12.2.1.X;
已发布补丁的WLS版本
Oracle WebLogic Server, 版本10.0.1mp,10.0.2mp,10.3.2,10.3.3,10.3.4.X10.3.5.X,10.3.6.X, 12.1.1.X, 12.1.2.X, 12.1.3.X, 12.2.1.X;
Oracle支持weblogic版本补丁
January 2016 CPU Update:
CVE-2015-4852现在修复包括在下面的weblogic补丁集更新(PSU)和更高PSU:
12.2.1.0.1
12.1.3.0.6
12.1.2.0.8
10.3.6.0.13
WLS Release | Required Patches |
12.2.1.0 | 12.2.1.0.0 Patch 22248372 for CVE-2015-4852 |
12.1.3.0 | PSU 12.1.3.0.5 (Patch 21370953) + 12.1.3.0.5 Patch 22248372 for CVE-2015-4852 |
12.1.2.0 | PSU 12.1.2.0.7 (Patch 21364493) + 12.1.2.0.7 Patch 22248372 for CVE-2015-4852 |
10.3.6.0 | PSU 10.3.6.0.12 (Patch 20780171) + 10.3.6.0.12 Patch 22248372 for CVE-2015-4852 |
参考:CVE-2015-4852 Patch Availability Document for Oracle WebLogic Server Component of Oracle Fusion Middleware (文档 ID 2075927.1)
Oracle提供补丁列表
补丁程序名 | 说明 | 发行版 | 平台 (语言) |
22248372 | SU Patch [RMW6]: WEBLOGIC SERVER CVE-2015-4852 SECURITY ALERT PATCH (NOV 2015) (补丁程序) | 10.3.3 | Generic Platform (American English) |
22248372 | SU Patch [JQNK] :10.3.4.0.5 Overlay: WEBLOGIC SERVER CVE-2015-4852 SECURITY ALERT PATCH (NOV 2015) (补丁程序) | 10.3.4.0.5 | Generic Platform (American English) |
22248372 | SU Patch [JF2L] :10.3.5.0.7 Overlay: MERGE REQUEST ON TOP OF WLS PSU 10.3.5.0.7 FOR BUGS 21495475 22175246 22200449 (补丁程序) | 10.3.5.0.7 | Generic Platform (American English) |
22248372 | SU Patch [L9CG]: WEBLOGIC SERVER CVE-2015-4852 SECURITY ALERT PATCH (NOV 2015) (补丁程序) | 10.3.2.0 | Generic Platform (American English) |
22248372 | SU Patch [YWAF]: WEBLOGIC SERVER CVE-2015-4852 SECURITY ALERT PATCH (NOV 2015) (补丁程序) | 10.3 | Generic Platform (American English) |
22248372 | SU Patch [JH3R]: WEBLOGIC SERVER CVE-2015-4852 SECURITY ALERT PATCH (NOV 2015) (补丁程序) | 10.0.1MP | Generic Platform (American English) |
22248372 | SU Patch [2H6C] :12.1.1.0.12 Overlay: WEBLOGIC SERVER CVE-2015-4852 SECURITY ALERT PATCH (NOV 2015) (补丁程序) | 12.1.1.0.12 | Generic Platform (American English) |
22248372 | SU Patch [VUMR]: WEBLOGIC SERVER CVE-2015-4852 SECURITY ALERT PATCH (补丁程序) | 10.0.2MP | Generic Platform (American English) |
22248372 | WEBLOGIC SERVER CVE-2015-4852 SECURITY ALERT PATCH (NOV 2015) (补丁程序) | 12.2.1.0.0 | Generic Platform (American English) |
22248372 | WEBLOGIC SERVER CVE-2015-4852 SECURITY ALERT PATCH (NOV 2015) (补丁程序) | 12.1.3.0.5 | Generic Platform (American English) |
22248372 | WEBLOGIC SERVER CVE-2015-4852 SECURITY ALERT PATCH (NOV 2015) (补丁程序) | 12.1.2.0.7 | Generic Platform (American English) |
22248372 | SU Patch [ZLNA] :10.3.6.0.12 Overlay: WEBLOGIC SERVER CVE-2015-4852 SECURITY ALERT PATCH (NOV 2015) (补丁程序) | 10.3.6.0.12 | Generic Platform (American English) |
根据自己所打的PSU版本,升级相应对应的补丁。
二、备份weblogic及domain
首先将对应的域文件和中间件安装目录打包备份。
tar{WL_HOME}yyyymmdd.tar{WL_HOME}
tar{MW_HOME}yyyymmdd.tar{MW_HOME}
三、Oracle官方解决方案
查出weblogic的版本号之后,根据补丁列表找到对应的补丁包。
需要执行语句修补的步骤如下:
用Linux主机的weblogic软件安装用户在{MW_HOME}/utils/bsu下执行第一步中查询版本的语句,这时在{MW_HOME}/utils/bsu会生成一个cache_dir文件夹
向这个文件夹上传对应的补丁包并解压
将解压后的patch-catalog_*.xml文件重命名为patch-catalog.xml这个标准文件名,否则系统会出现不自动读取的问题。
回到上一级目录,即{MW_HOME}/utils/bsu下,执行语句vi bsu.sh ,将其中的内存大小改为1G,即MEM_ARGS=”-Xms1521m –Xmx1521m”
修改增加内存:
vi/Oracle/Middleware/utils/bsu/bsu.sh
#!/bin/sh
JAVA_HOME="/Oracle/Middleware/jrockit_160_22_D1.1.1-3"
"$JAVA_HOME/bin/java"-Xms1521m-Xmx1512m-jar patch-client.jar$*
命令行方式
查看版本语句:
/Oracle/Middleware/utils/bsu/bsu.sh-prod_dir=/Oracle/Middleware/wlserver_10.3-status=applied-verbose–view
如果有老补丁已经安装请确认补丁是否被包含此补丁内,卸载补丁后再安装最新补丁,防止冲突
在{MW_HOME}/utils/bsu下,执行补丁安装命令
./bsu.sh-install-patch_download_dir={MW_HOME}/utils/bsu/cache_dir-patchlist={PATCH_ID}-prod_dir={MW_HOME}/{WL_HOME}
为了防止主机连接断开导致安装失败,可以使用后台安装命令
nohup./bsu.sh-install-patch_download_dir={MW_HOME}/utils/bsu/cache_dir-patchlist={PATCH_ID}-prod_dir={MW_HOME}/{WL_HOME}&tail-fnohup.out
例如:
/Oracle/Middleware/utils/bsu/bsu.sh-install-patch_download_dir=/Oracle/Middleware/utils/bsu/cache_dir-patchlist=K25M-prod_dir=/Oracle/Middleware/wlserver_10.3
安装后查看版本:
/Oracle/Middleware/utils/bsu/bsu.sh-prod_dir=/Oracle/Middleware/wlserver_10.3-status=applied-verbose–view
gui方式
设置环境变量:export DISPLAY=192.168.1.2:0.0
执行:
/Oracle/Middleware/utils/bsu/bsu.sh
图形界面
如果没有找不到,补丁程序->刷新 ,弹出验证窗口
检测补丁是否冲突,时间较长
然后点击’应用’
安装完成后
四、Oracle官方建议临时解决方案
不在Oracle 生命周期的weblogic产品建议采用MOS建议的T3协议过滤来缓解漏洞带来的危害
登入weblogic console控制台:
点击base_domain,-> ” 安全 “->” 筛选器 ”
修改连接筛选器,填入weblogic.security.net.ConnectionFilterImp
填入筛选规则:
当前测试规则为:
10.64.158.0/255.255.254.0 * 7001 allow t3 t3s
0.0.0.0/0 * * deny t3 t3s
规则解释为:只允许10.64.158网段的服务器可以通过7001端口使用T3协议访问该weblogic服务
引用文档:
http://docs.oracle.com/middleware/1221/wls/SCPRG/con_filtr.htm#SCPRG377
五、非Oracle官方临时解决方案一
在非Oracle官方的修复方法中,包含以下两种方法:
调整应用程序,使用SerialKiller类包替换进行反序列化操作的ObjectInputStream类。
下载jar包和实施步骤请参考链接:https://github.com/ikkisoft/SerialKiller
Apache官方最近发布了commons-collections的新版本,修复方法为替换有漏洞的commons-collections组件
下载地址:http://commons.apache.org/proper/commons-collections/download_collections.cgi
建议:原来是3.2.x就替换为3.2.2,原来是4.x就替换为4.4.1,若出现不兼容,请尝试替换另一个版本。
具体方法:
先停止weblogic,在中间件modules目录下存在名为
com.bea.core.apache.commons.collections_x.x.x.jar的文件
以及在应用目录下查找相关jar包:
find/{WL_HOME}-name'*commons.collections*'
find/{domain_home}-name'*commons.collections*'
下载最新的commons-collections(bin包,不是源码包),如:
用压缩包中的commons-collections-3.2.2.jar替换掉有漏洞的jar包,保持原jar包的名字,即名字不变换掉jar包
启动weblogic
六、非Oracle官方临时解决方案二
按照oracle官网所说8和9版本没有反序列漏洞,但是实际中,如果在应用中包含’*commons.collections*’的jar包,还是会在安全软件中扫描出反序列化漏洞。所以下面有对应版本的不同处理方式
weblogic8和weblogic9版本的反序列化漏洞修补
这两个系列版本的weblogic扫描出反序列化漏洞后,可以通过测试机先行测试,避免操作影响生产运行。可以直接克隆一台虚拟机进行测试,在主机上执行以下语句来查找导致漏洞的jar包
find/{WL_HOME}-name'*commons.collections*'
find/{domain_home}-name'*commons.collections*'
然后有两种处理方式:
使用 SerialKiller 替换进行序列化操作的 ObjectInputStream 类;
在不影响业务的情况下,临时删除掉项目里的
“org/apache/commons/collections/functors/InvokerTransformer.class” 文件;
这样就可以解决这两个系列版本的weblogic反序列化漏洞。
七、总结
上述的解决方案,提出如下建议:
首先掌握一种正确的测试方法,并在测试环境中进行验证测试。可参考github网站上老外提供的工具ysoserial-0.0.2,生成应用中间件脚步测试。
优先选择Oracle官方提供的打补丁的方式,影响范围比较小,不涉及应用程序。
在打补丁不能解决的情况下,再考虑非Oracle官方的方式,替换类包或删除相关类,但涉及应用程序,需要由应用维护人员进行测试、评估和实施。
反序列漏洞具体分析网上很多都已经分析透彻,如下:
http://www.tuicool.com/articles/ZvMbIne
http://www.2cto.com/article/201604/497315.html
https://github.com/frohoff/ysoserial.gitfrohoff/ysoserial
相关推荐
- 甲骨文签署多项大型云协议,其一未来可贡献超300亿美元年收入
-
IT之家7月1日消息,根据甲骨文Oracle当地时间6月30日向美国证券交易委员会(SEC)递交的FORM8-K文件,该企业在始于2025年6月1日的202...
- 甲骨文获TEMU巨额合同,后者大部分基础设施将迁移至Oracle云
-
IT之家6月23日消息,Oracle甲骨文创始人、董事长兼首席技术官LarryEllison(拉里埃里森)在本月早些时候的2025财年第四财季和全财年财报电话会议上表示,Oracle...
- Spring Boot 自定义数据源设置,这些坑你踩过吗?
-
你在使用SpringBoot进行后端开发的过程中,是不是也遇到过这样的问题:项目上线后,数据库连接总是不稳定,偶尔还会出现数据读取缓慢的情况,严重影响了用户体验。经过排查,发现很大一部分原因竟然...
- 一个开箱即用的代码生成器(一个开箱即用的代码生成器是什么)
-
今天给大家推荐一个好用的代码生成器,名为renren-generator,该项目附带前端页面,可以很方便的选择我们所需要生成代码的表。首先我们通过git工具克隆下来代码(地址见文末),导入idea。...
- 低代码建模平台-数据挖掘平台(低代码平台的实现方式)
-
现在来看一下数据连接。·这里是管理数据连接的空间,点击这里可以新增一个数据连接。·输入连接名称,然后输入url,是通过gdbc的方式去连接的数据库,目前是支持mysql、oracle以及国产数据库达梦...
- navicat 17.2.7连接oracle数据库提示加载oracle库失败
-
系统:macOS15.5navicat版本:navicatpremiumlite17.2.7连接oracle测试报错:加载oracle库失败【解决办法】:放达里面找到程序,显示简介里面勾选“使...
- 开源“Windows”ReactOS更新:支持全屏应用
-
IT之家6月17日消息,ReactOS团队昨日(6月16日)在X平台发布系列推文,公布了该系统的最新进展,包括升级Explorer组件,支持全屏应用,从Wine项目引入了...
- SSL 推出采用全模拟内置混音技术的模拟调音台Oracle
-
英国调音台传奇品牌SolidStateLogic宣布推出Oracle——一款采用全模拟内置混音技术的调音台,在紧凑的AWS尺寸机箱内集成了大型调音台的功能。该调音台提供24输入和...
- 47道网络工程师常见面试题,看看有没有你不会的!
-
你们好,我的网工朋友。网络工程师面试的时候,都会被问到什么?这个问题其实很泛,一般来说,你肯定要先看明白岗位需求写的是什么。基本上都是围绕公司需要的业务去问的。但不可否认的是,那些最基础的概念,多少也...
- 汉得信息:发布EBS系统安装启用JWS的高效解决方案
-
e公司讯,从汉得信息获悉,近日,微软官方宣布InternetExplorer桌面应用程序将于2022年6月15日正式停用。目前大部分客户都是使用IE浏览器打开EBS的Form界面,IE停用后,只能使...
- 36.9K star ! 推荐一个酷炫低代码开发平台!功能太强!
-
前言最近在逛github,看看能不能搜罗到一些对自己有帮助的开源软件。不经意间看到一个高star的java开源项目:jeecg-boot。进入在线演示版一看,感叹实在是太牛了!此开源项目不管是给来学习...
- Linux新手入门系列:Linux下jdk安装配置
-
本系列文章是把作者刚接触和学习Linux时候的实操记录分享出来,内容主要包括Linux入门的一些理论概念知识、Web程序、mysql数据库的简单安装部署,希望能够帮到一些初学者,少走一些弯路。注意:L...
- 手把手教你在嵌入式设备中使用SQLite3
-
摘要:数据库是用来存储和管理数据的专用软件,使得管理数据更加安全,方便和高效。数据库对数据的管理的基本单位是表(table),在嵌入式linux中有时候它也需要用到数据库,听起来好难,其实就是几个函数...
- JAVA语言基础(java语言基础知识)
-
一、计算机的基本概念什么是计算机?计算机(Computer)全称:电子计算机,俗称电脑。是一种能够按照程序运行、自动高速处理海量数据的现代化智能电子设备。由硬件和软件组成、没有安装过任何软件的计算机称...
- 再见 Navicat!一款开源的 Web 数据库管理工具!
-
大家好,我是Java陈序员。在日常的开发工作中,常常需要与各种数据库打交道。而为了提高工作效率,常常会使用一些可视化工具进行操作数据库。今天,给大家介绍一款开源的数据库管理工具,无需下载安装软件,基...
你 发表评论:
欢迎- 一周热门
- 最近发表
-
- 甲骨文签署多项大型云协议,其一未来可贡献超300亿美元年收入
- 甲骨文获TEMU巨额合同,后者大部分基础设施将迁移至Oracle云
- Spring Boot 自定义数据源设置,这些坑你踩过吗?
- 一个开箱即用的代码生成器(一个开箱即用的代码生成器是什么)
- 低代码建模平台-数据挖掘平台(低代码平台的实现方式)
- navicat 17.2.7连接oracle数据库提示加载oracle库失败
- 开源“Windows”ReactOS更新:支持全屏应用
- SSL 推出采用全模拟内置混音技术的模拟调音台Oracle
- 47道网络工程师常见面试题,看看有没有你不会的!
- 汉得信息:发布EBS系统安装启用JWS的高效解决方案
- 标签列表
-
- oracle位图索引 (74)
- oracle批量插入数据 (65)
- oracle事务隔离级别 (59)
- oracle 空为0 (51)
- oracle主从同步 (55)
- oracle 乐观锁 (51)
- redis 命令 (78)
- php redis (88)
- redis 存储 (66)
- redis 锁 (69)
- 启动 redis (66)
- redis 时间 (56)
- redis 删除 (67)
- redis内存 (57)
- redis并发 (52)
- redis 主从 (69)
- redis 订阅 (51)
- redis 登录 (54)
- redis 面试 (58)
- 阿里 redis (59)
- redis 搭建 (53)
- redis的缓存 (55)
- lua redis (58)
- redis 连接池 (61)
- redis 限流 (51)