Weblogic反序列化漏洞补丁更新解决方案

    xiaoxiao2021-03-25  138

    Weblogic反序列化漏洞的解决方案有两种: 1.使用SerialKiller替换进行序列化操作的ObjectInputStream类; 2.在不影响业务的情况下,临时删除掉项目里的commons.collections .jar里 "org/apache/commons/collections/functors/InvokerTransformer.class"文件。 ObjectInputStream类为JRE的原生类,InvokerTransformer.class为weblogic基础包中的类,对上 述两个类进行修改或删除,实在无法保证对业务没有影响。如果使用上述的修复方式,需要大量的测试工作。且仅仅删除 InvokerTransformer.class文件,无法保证以后不会发现其他的类存在反序列化漏洞。

    基于项目比较庞大用的比较多。我就果断使用了第二个方案关键是简单

    第一种方案如下 1、打补丁p20780171_1036_Generic.zip 2、打补丁22248372_1036012_Generic.zip 3、打补丁。。。 步骤如下: 1、测试漏洞 Java -jar  Test.jar weblogic  xxx.xxx.xxx.xxx 7001 F:/a.txt执行该操作后,如果该IP上的电脑生成a.txt文件,证明漏洞存在(此命令为window下操作,linux下修改文件路径,暂未测试)。 2、到weblogic官网下载补丁包 (p20780171_1036_Generic.zip、p22248372_1036012_Generic.zip)10.3.6对应的补丁包p22248372_1036012_Generic.zip ,补丁包需要依赖于一个大的升级包,所以需要把p20780171_1036_Generic.zip也下载下来。 3、安装补丁步骤 1、登录linux的weblogic用户,切换到/home/weblogic/Oracle/Middleware/utils/bsu/目录下。 2、确认当前weblogic版本,并确认所有域的进程全部关闭 ./bsu.sh  -prod_dir=/home/weblogic/Oracle/Middleware/wlserver_10.3/ -status=applied -verbose –view 3、查看是否存在/home/weblogic/Oracle/Middleware/utils/bsu/cache_dir 目录,没有的需要手工创建。 4、将补丁包上传到/home/weblogic/Oracle/Middleware/utils/bsu/cache_dir目录下 5、首先打大的升级包,解压p20780171_1036_Generic.zip unzip p20780171_1036_Generic.zip     EJUW对应就是后面命令的patchlist 6、执行补丁安装命令。 ./bsu.sh -install -patch_download_dir=/home/weblogic/Oracle/Middleware/utils/bsu/cache_dir -patchlist=EJUW  -prod_dir=/home/weblogic/Oracle/Middleware/wlserver_10.3 –verbose 7、打序列化的补丁包,解压p22248372_1036012_Generic.zip unzip p22248372_1036012_Generic.zip ./bsu.sh -install -patch_download_dir=/home/weblogic/Oracle/Middleware/utils/bsu/cache_dir -patchlist=ZLNA  -prod_dir=/home/weblogic/Oracle/Middleware/wlserver_10.3 –verbose 8、在打ZLNA补丁包时,遇到了内存溢出的问题。需要修改bsu.sh脚本,将内存调大。 9、启动weblogic的域,查看输出日志。确定版本是否生效。   weblogic 反序列化漏洞补丁 第二种方案如下 到..\weblogic\Middleware\modules\com.bea.core.apache.commons.collections_3.2.0.jar 并打开,jar 包 内 org/apache/commons/collections/functors/InvokerTransformer.class文件,不要直接解压缩后打开再重新包,这样会有问题。要直接用压缩工具软件打开后直接删除。特别注意如果集群环境,要全部停掉再执行此操作才有效,否则会被缓存的文件覆盖回原始包

    转载请注明原文地址: https://ju.6miu.com/read-3440.html

    最新回复(0)