weblogic漏洞:CNVD-C-2019-48814

原文链接:http://www.cnxdug.org/?p=3621

weblogic远程代码执行漏洞,漏洞号:CNVD-C-2019-48814

漏洞分析:

weblogic 的async_response组件用于为WebService提供异步通讯功能。远程访问用户可通过访问路径http://ip:端口/_async/AsyncResponseService获取webservice异步通讯服务信息。

Wsdl页模块部分信息如下:

<WL5G3N0:port binding="WL5G3N1:AsyncResponseServiceSoapBindinghttp" name="AsyncResponseService">
<WL5G3N2:address location="http://localhost:7001/_async/AsyncResponseService"/>
</WL5G3N0:port>
<WL5G3N0:port binding="WL5G3N1:AsyncResponseServiceSoapBindingjms" name="AsyncResponseServiceJms">
<WL5G3N2:address location="jms://localhost:7001/_async/AsyncResponseServiceJms"/>

通过soap (http)、jms协议远程直接调用服务。获取调用接口代码执行相关操作。

漏洞复现

访问/_async/AsyncResponseService来判断是否启用该组件。
weblogic漏洞:CNVD-C-2019-48814

影响版本:

Weblogic 10.3.x

Weblogic 12.1.x

Weblogic 12.2.x
影响版本、组件包及组件包路径:

影响版本 组件包 组件包路径
Weblogic 10.3.x bea_wls9_async_response.war WLS_Home/wlserver_10.3/server/lib
Weblogic 12.1.x bea_wls9_async_response.war WLS_HOME/wlserver_12.1/server/lib
导Weblogic 12.2.x com.oracle.webservices.wls.bea-wls9-async-response.war WLS_HOME/oracle_common/modules

漏洞处置建议

1.禁用bea_wls9_async_response组件
2.删除wls9_async_response的war包并重启
3.禁止访问 /_async/* 路径
4.目前oracle官方已提供最新补丁,补丁如下:
WLS Release Required Patches
10.3.6.0 Jan PSU 10.3.6.0.190115 Patch 28710912 + Overlay Patch 29694149 on 10.3.6.0.190115 for CVE-2019-2725
Apr PSU 10.3.6.0.190416 Patch 29204678 + Overlay Patch 29694149 on 10.3.6.0.190416 for CVE-2019-2725
12.1.3.0 Jan 2019 PSU 12.1.3.0.190115 Patch 28710923 + Patch should be available on April 29, 2019 for CVE-2019-2725
- Apr 2019 PSU 12.1.3.0.190416 Patch 29204657 + Patch should be available on April 29, 2019 for CVE-2019-2725

参考官网:Security Alert CVE-2019-2725 Patch Availability Document for Oracle WebLogic Server (文档 ID 2535708.1)

删除war包处理方式操作:

关闭正在运行的weblogic server;

删除<WL_HOME>/server/lib目录下的 uddi.properties, uddi.war,uddiexplorer.war ,bea_wls9_async_response.war,wls-wsat.war
*注意:步骤3和步骤4只在weblogic server曾经启动过并已经创建了tmp目录的情况下需要。

清除 <DOMAIN_HOME>/servers/<SERVER_NAME>/tmp/.internal 文件夹.
删除<DOMAIN_HOME>/servers/<SERVER_NAME>/tmp/_WL_internal下的文件夹 :uddi* ,bea_wls9_async_response,wls-wsat或者删除_WL_internal文件夹;
重新启动 server
注:一定要在测试环境测试,因为删除的包较多,把所有业务功能都测一遍,以防万一。

软件代理处理方式操作:

Apache 做代理,禁止访问某个目录:

在使用apache做为代理服务器的时候,配置文件为/etc/apache/conf/httpd.conf,具体配置文件位置根据实际安装位置确定。

配置禁用url路径:

<Directory ~ “^/_async/(.+/)*” />
   Order allow,deny
   Deny from all
</ Directory >

即禁止访问目录/_async/*

访问http://域名:port/_async跳转到403错误页面

####################################################
APACHE-HOME/conf/httpd.conf file
####################################################
LoadModule weblogic_module   libexec/mod_wl_20.so
 
<Location /weblogic>
 SetHandler weblogic-handler
 PathTrim /weblogic
 ErrorPage http://myerrorpage1.mydomain.com
</Location>
 
<Location /_async >
 SetHandler weblogic-handler
 PathTrim /_async
 ErrorPage http://myerrorpage1.mydomain.com
</Location>
 
<IfModule mod_weblogic.c>
  MatchExpression *.jsp
  WebLogicCluster w1s1.com:7001,w1s2.com:7001,w1s3.com:7001
  ErrorPage http://myerrorpage.mydomain.com
</IfModule>

Nginx 做代理,禁止访问某个目录

禁止对叫_async目录的访问并返回403 被禁止的,可以使用下面的配置:

location /_async {
deny all; 
return 403;
}

F5及相关硬件代理,4层交换机以上代理及防火墙限制找相关专业配置。

总结:

根据最近这几年的漏洞情况分析,规律基本一致,在代理端禁用目录和设置IP过滤,可以避免很多已知的bug,甚至不需要在服务器端做其它操作。

  • 代理端设置禁用目录,如:_async目录和/wls-wsat目录
    访问方式:
    http://域名:port/_async/*
    http://域名:port//wls-wsat/*

  • 限制ip访问,如:服务器端通过iptable限制ip访问或weblogic console限制ip访问。

上一篇:welogic 服务在window下实现后台服务运行


下一篇:了解HTTPS和Tomcat、Weblogic服务器开启HTTPS