Weblogic反序列化漏洞的解決方案基於網上給的方案有兩種:
第一種方案如下
- 使用SerialKiller替換進行序列化操作的ObjectInputStream類;
- 在不影響業務的情況下,臨時刪除掉項目裏的 "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 反序列化漏洞補丁
https://pan.baidu.com/s/1hrGJNNI