浅析WebLogic任意文件上传(CVE-2018-2894)
/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 | root@DGSec:~/vulhub/weblogic/CVE-2018-2894# docker-compose logs | grep password |
登录上去之后,点击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 | /u01/oracle/user_projects/domains/base_domain/servers/AdminServer/tmp/_WL_internal/com.oracle.webservices.wls.ws-testclient-app-wls/4mcj4y/war/css |
漏洞分析
待分析…
防御方法
升级WebLogic版本。