本来想试试打补丁,但是有些麻烦,而且oracle补丁黑名单的方式总不让人放心。
因此考虑直接删除相关的包。
该方式适用于xmldecoder漏洞系列,如CVE-2017-3506、CVE-2017-10271、CVE-2019-2729
步骤为:
1、停止weblogic服务。
netstat -ap | grep 7001
获取weblogic相关进程的PID
然后,kill -9 PID
2、首先要删除的是,bea_wls9_async_response.war和wls-wsat.war这两个包。
应该在
${WL_HOME}/wlserver_10.3/server/lib下。
3、当然还有缓存。
如wls-wsat包,应该是这样的形式。
${WL_HOME}/user_projects/domains/test_domain/servers/AdminServer/tmp/.internal/wls-wsat.war
${WL_HOME}/user_projects/domains/test_domain/servers/AdminServer/tmp/_WL_internal/wls-wsat
同理,bea_wls9_async_response也如此。
4、清理缓存,一定要同时把war包和tmp文件删掉再重启,只删其中一个或者删了一个重启后再删另外一个都是不能修复。原理上是在启动时lib下的war包会复制到tmp/.internal/下。如果只删除2那再启动时又复制回来显然没效果,如果只删除lib下的war包那重启时tmp下的包并不会被清除,所以还是没效果。
为了省事,我是直接删了tmp目录。
rm -rf ${WL_HOME}/user_projects/domains/test_domain/servers/AdminServer/tmp/
最后全局检索下有没有类似war或者目录。
5、启动weblogic服务。
nohup ./startweblogic.sh &
访问,404,成功。
补充:目前出了最新补丁,也就是CVE-2019-2729,删包怕影响业务的可以考虑打上U512的全量和IL49的增量补丁。