一、 事件背景
WebLogic是美国Oracle公司出品的一个application server,确切的说是一个基于JAVAEE架构的中间件,WebLogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器。
近日,Oracle官网报道了一条Weblogic存在任意文件上传漏洞(CVE-2018-2894)。WebLogic管理端未授权的两个页面存在任意上传getshell漏洞,可直接获取权限。两个页面分别为/ws_utc/begin.do,/ws_utc/config.do。攻击者可以利用此漏洞向目标服务器上传任意文件,然后getshell,可直接获取权限。
相关链接:
http://www.oracle.com/technetwork/security-advisory/cpujul2018-4258247.html
二、 漏洞复现
本地搭建Weblogic 12.2.1.3.0环境。
访问http://192.168.56.128:7001/ws_utc/config.do。
可以将当前的工作目录更改为其他目录,这里设置WorkHome Dir为:C:\Oracle\Middleware\Oracle_Home\user_projects\domains\base_domain\servers\AdminServer\tmp\_WL_internal\com.oracle.webservices.wls.ws-testclient-app-wls\4mcj4y\war。选择左边的安全栏目,添加JKS Keystores上传文件。
上传后,利用burp查看返回的数据包,其中有时间戳。
则上传后的文件目录及文件名为config\keystore\[时间戳]_[文件名]。
访问:http://192.168.56.128:7001/ws_utc/config/keystore/1532618663796_test.jsp,并执行相关命令。
三、 漏洞分析及危害
1) 漏洞分析
查看文件
ws-testpage-impl.jar!/com/oracle/webservices/testclient/setting/TestClientWorkDirManager.class相关代码。
此函数用于改变工作目录,但并未做任何检测。
跟进到触发此次漏洞的核心文件:ws-testpage-impl.jar!/com/oracle/webservices/testclient/ws/util/RSDataHelper.class。
上传后的文件位于工作台配置的目录下的/config/keystore/目录中,文件名采用了POST请求中URL地址上携带的参数timestamp的值加上下划线拼接起来的文件名,并且在上传过程没有任何过滤和检查。
2) 漏洞危害
恶意攻击者可以利用此漏洞向目标服务器上传任意文件,然后getshell,可直接获取权限。
四、 数据分析
1) 世界分布
世界范围内使用Weblogic的服务器数量约为9.8万个。其中,排名前五的国家分别为:中国、美国、韩国、瑞典、加拿大。
下图为世界范围内使用Weblogic的服务器分布情况:
图1、世界分布图
下图为世界范围内使用Weblogic的服务器数量排名前十的国家:
图2、世界排名前十
2) 国内分布
中国境内使用Weblogic的服务器数量约为4.8万个。其中,排名前五的省份或地区分别为:北京市、广东省、上海市、浙江省、江苏省。
下图为中国范围内使用Weblogic的服务器分布情况:
图3、国内分布图
下图为中国范围内使用Weblogic的服务器数量排名前十省份或地区:
图4、国内排名前十
下图为使用Weblogic的服务器的国内运营商排名:
图5、国内运营商排名前十
五、 防范建议
1) 漏洞影响版本
Weblogic 10.3.6.0
Weblogic 12.1.3.0
Weblogic 12.2.1.2
Weblogic 12.2.1.3
2) 修复建议
Oracle官方已经在7月的关键补丁更新中修复了此漏洞,受影响的用户请尽快升级更新进行防护。相关链接如下:
http://www.oracle.com/technetwork/security-advisory/cpujul2018-4258247.html