前言
继本系列上篇从CVE-2015-4852入手了解T3协议的构造后,本篇继续分析开启T3反序列化魔盒后的修复与绕过。
Weblogic对于10.3.6推出了p20780171和p22248372用于修复CVE-2015-4852,在补丁详情中又提示了p21984589是它的超集,所以可以直接装这个合集。跟着压缩包里自带的README.txt
走就行,注意一点是要改一下bsu.sh
中的内存限制,不然会遇到Java heap space OutOfMemoryError
。
unzip p21984589_1036_Generic.zip -d /u01/app/oracle/middleware/utils/bsu/cache_dir/
cd /u01/app/oracle/middleware/utils/bsu/
sed -i 's/512/1024/' bsu.sh
./bsu.sh -install -patch_download_dir=/u01/app/oracle/middleware/utils/bsu/cache_dir -patchlist=S8C2 -prod_dir=/u01/app/oracle/middleware/wlserver
. /u01/app/oracle/middleware/wlserver/server/bin/setWLSEnv.sh
/java/bin/java weblogic.version
补丁在重写的ServerChannelInputStream#resolveClass
中新增了类名黑名单,加入了CC链比较关键的包。
梳理一下:
-
原生反序列化依然存在,流程中的各个关键方法可用。
-
CC链在黑名单以外的部分,仍然可以用作调用链。
-
黑名单类不在
ServerChannelInputStream
做反序列化就不受限制。
根据第三点先获取所有用到