0x00 前言

简单学习WebLogic任意文件上传(CVE-2018-2894)漏洞。

0x01 CVE-2018-2894

环境搭建

用的Vulhub:https://vulhub.org/#/environments/weblogic/CVE-2018-2894/

前提条件

  • 开启了Weblogic Web Service Test Page,此配置项默认是关闭的;
  • 知道Web目录路径;

影响版本

Oracle WebLogic Server 10.3.6.0, 12.1.3.0, 12.2.1.2, 12.2.1.3。

漏洞原理

Weblogic Web Service Test Page中存在任意文件上传漏洞,攻击者可上传任意jsp文件来getshell。

漏洞复现

访问http://ip:7001/console进入到登录界面。

使用如下命令来查找WebLogic的密码:

1
2
3
4
root@DGSec:~/vulhub/weblogic/CVE-2018-2894# docker-compose logs | grep password
weblogic_1 | ----> 'weblogic' admin password: cqy9mA2m
weblogic_1 | admin password : [cqy9mA2m]
weblogic_1 | * password assigned to an admin-level user. For *

登录上去之后,点击base_domain,在”配置”->”一般信息”->”高级”中开启”启用 Web 服务测试页”选项:

接着访问http://ip:7001/ws_utc/config.do页面,即Web服务测试页,设置Work Home Dir即当前的工作目录为/u01/oracle/user_projects/domains/base_domain/servers/AdminServer/tmp/_WL_internal/com.oracle.webservices.wls.ws-testclient-app-wls/4mcj4y/war/css,即将目录设置为ws-utc应用的静态css文件目录,因为该目录是无需权限的:

接着,点击左侧的安全栏目来添加JSP WebShell,这里WebShell用的哥斯拉生成的:

抓包记下响应报文的时间戳:

访问路径,是存在的:http://ip:7001/ws_utc/css/config/keystore/1617251643547_shell.jsp

连上:

最后,个人测试以下几个静态目录都是可行的:

1
2
3
/u01/oracle/user_projects/domains/base_domain/servers/AdminServer/tmp/_WL_internal/com.oracle.webservices.wls.ws-testclient-app-wls/4mcj4y/war/css
/u01/oracle/user_projects/domains/base_domain/servers/AdminServer/tmp/_WL_internal/com.oracle.webservices.wls.ws-testclient-app-wls/4mcj4y/war/js
/u01/oracle/user_projects/domains/base_domain/servers/AdminServer/tmp/_WL_internal/com.oracle.webservices.wls.ws-testclient-app-wls/4mcj4y/war/images

漏洞分析

待分析…

防御方法

升级WebLogic版本。