Weblogic漏洞(一)之 Weblogic基本介绍

news2024/9/24 23:24:32

Weblogic基本介绍

WebLogic是美国Oracle公司出品的一个application server,确切的说是一个基于JAVAEE架构的中间件,WebLogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器。将Java的动态功能和Java Enterprise标准的安全性引入大型网络应用的开发、集成、部署和管理之中。适用于大型商业项目。

WebLogic最早由 WebLogic Inc. 开发,后并入BEA 公司,最终BEA公司又并入Oracle公司,WebLogic是用来构建网站的必要软件,具有解析、发布网页等功能,它是用纯java开发的。weblogic本来不是由BEA发明的,是它从别人手中买过来,然后再加工扩展。BEA已经被Oracle收购,Weblogic最新版本为Oracle Weblogic Server 12c(12.2.1.3)。其他J2EE Application Server还有IBM的websphere、Sun(Sun公司已经被ORACLE公司收购)的Glassfish、resin等。Apache Tomcat也是常用的Servlet/JSP Container。 国内厂商生产的还有像中创软件的Loong AS 9.0(达四级等保,全面支持国产)、东方通的Tongweb、金蝶Apusic应用服务器等。

WebLogic长期以来一直被认为是市场上最好的J2EE工具之一。像数据库或邮件服务器一样,WebLogic Server 对于客户是不可见的,为连接在它上面的客户提供服务。WebLogic 最常用的使用方式是为在internet 或internet 上的Web 服务提供安全、数据驱动的应用程序。WebLogic对J2EE 架构的支持:WebLogic Server 提供了对SUN J2EE 架构的支持。SUN公司的J2EE 架构是为企业级提供的一种支持分布式应用的整体框架。为集成后端系统,如ERP系统,CRM系统,以及为实现企业级计算提供了一个简易的,开放的标准。

中间件(Middleware)

中间件是指连接软件组件或企业应用程序的软件。中间件是位于操作系统和分布式计算机网络两侧的应用程序之间的软件层。它可以被描述为“软件胶水。通常,它支持复杂的分布式业务软件应用程序。

在这里插入图片描述

Oracle定义中间件的组成包括Web服务器、应用程序服务器、内容管理系统及支持应用程序开发和交付的类似工具,它通常基于可扩展标记语言(XML)、简单对象访问协议(SOAP)、Web服务、SOA、Web 2.0和轻量级目录访问协议(LDAP)等技术。

Oracle融合中间件(Oracle Fusion Middleware)

Oracle融合中间件是Oracle提出的概念,Oracle融合中间件为复杂的分布式业务软件应用程序提供解决方案和支持。Oracle融合中间件是一系列软件产品并包括一系列工具和服务, 如:符合Java Enterprise Edition 5(Java EE)的开发和运行环境、商业智能、协作和内容管理等。Oracle融合中间件为开发、部署和管理提供全面的支持。Oracle融合中间件通常提供以下图中所示的解决方案:

在这里插入图片描述

Oracle融合中间件提供两种类型的组件:

  • Java组件

Java组件用于部署一个或多个Java应用程序,Java组件作为域模板部署到Oracle WebLogic Server域中。这里提到的Oracle WebLogic Server域在后面会随着Oracle WebLogic Server详细解释。

  • 系统组件

系统组件是被Oracle Process Manager and Notification (OPMN)管理的进程,其不作为Java应用程序部署。系统组件包括Oracle HTTP Server、Oracle Web Cache、Oracle Internet Directory、Oracle Virtual Directory、Oracle Forms Services、Oracle Reports、Oracle Business Intelligence Discoverer、Oracle Business Intelligence。

Oracle WebLogic Server(WebLogic)

Oracle WebLogic Server(以下简称WebLogic)是一个可扩展的企业级Java平台(Java EE)应用服务器。其完整实现了Java EE 5.0规范,并且支持部署多种类型的分布式应用程序。

在前面Oracle融合中间件的介绍中,我们已经发现了其中贯穿着WebLogic的字眼,且Oracle融合中间件和WebLogic也是我在漏洞分析时经常混淆的。实际上WebLogic是组成Oracle融合中间件的核心。几乎所有的Oracle融合中间件产品都需要运行WebLogic Server。因此,本质上,WebLogic Server不是Oracle融合中间件,而是构建或运行Oracle融合中间件的基础,Oracle融合中间件和WebLogic密不可分却在概念上不相等。

Oracle WebLogic Server域

Oracle WebLogic Server域又是WebLogic的核心。Oracle WebLogic Server域是一组逻辑上相关的Oracle WebLogic Server资源组。域包括一个名为Administration Server的特殊Oracle WebLogic Server实例,它是配置和管理域中所有资源的中心点。也就是说无论是Web应用程序、EJB(Enterprise JavaBeans)、Web服务和其他资源的部署和管理都通过Administration Server完成。

在这里插入图片描述

Oracle WebLogic Server集群

WebLogic Server群集由多个同时运行的WebLogic Server服务器实例组成,它们协同工作以提供更高的可伸缩性和可靠性。因为WebLogic本身就是为分布式设计的中间件,所以集群功能也是WebLogic的重要功能之一。也就有了集群间通讯和同步,WebLogic的众多安全漏洞也是基于这个特性。

WebLogic的版本

WebLogic版本众多,但是现在我们经常见到的只有两个类别:10.x和12.x,这两个大版本也叫WebLogic Server 11g和WebLogic Server 12c。

根据Oracle官方下载页面https://www.oracle.com/technetwork/middleware/weblogic/downloads/wls-for-dev-1703574.html(从下向上看):

在这里插入图片描述

10.x的版本为Oracle WebLogic Server 10.3.6,这个版本也是大家用来做漏洞分析的时候最喜欢拿来用的版本。P牛的vulhub(https://github.com/vulhub/vulhub)中所有WebLogic漏洞靶场都是根据这个版本搭建的。

12.x的主要版本有:

  • Oracle WebLogic Server 12.1.3
  • Oracle WebLogic Server 12.2.1
  • Oracle WebLogic Server 12.2.1.1
  • Oracle WebLogic Server 12.2.1.2
  • Oracle WebLogic Server 12.2.1.3

值得注意的是,Oracle WebLogic Server 10.3.6支持的最低JDK版本为JDK1.6, Oracle WebLogic Server 12.1.3支持的最低JDK版本为JDK1.7,Oracle WebLogic Server 12.2.1及以上支持的最低JDK版本为JDK1.8。因此由于JDK的版本不同,尤其是反序列化漏洞的利用方式会略有不同。同时,不同的Oracle WebLogic Server版本依赖的组件(jar包)也不尽相同,因此不同的WebLogic版本在反序列化漏洞的利用上可能需要使用不同的Gadget链(反序列化漏洞的利用链条)。

Weblogic的优势

WebLogic Server具有开发和部署关键任务电子商务Web应用系统 所需的多种特色和优势,包括:

标准

对业内多种标准的全面支持,包括EJB、JSP、JMS、JDBC、XML(标准通用标记语言的子集)和WML,使Web应用系统的实施更为简单,并且保护了投资,同时也使基于标准的解决方案的开发更加简便。

可扩展性

WebLogic Server以其高扩展的架构体系闻名于业内,包括客户机连接的共享、资源pooling以及动态网页和EJB组件群集。

快速开发

凭借对EJB和JSP的支持,以及WebLogic Server 的Servlet组件架 构体系,可加速投放市场速度。这些开放性标准与WebGain Studio配合时,可简化开发,并可发挥已有的技能,迅速部署应用系统。

更趋灵活

WebLogic Server的特点是与领先数据库、操作系统和Web服务器紧密集成。

可靠性

其容错、系统管理和安全性能已经在全球数以千计的关键任务环境中得以验证。

体系结构

WebLogic Server是专门为企业电子商务应用系统开发的。企业电子商务应用系统需要快速开发,并要求服务器端组件具有良好的灵活性和安全性,同时还要支持关键任务所必需的扩展、性能、和高可用性。WebLogic Server简化了可移植及可扩展的应用系统的开发,并为其它应用 系统和系统提供了丰富的互操作性。

凭借其出色的群集技术,WebLogic Server拥有最高水平的可扩展 性和可用性。BEA WebLogic Server既实现了网页群集,也实现了EJB组件 群集,而且不需要任何专门的硬件或操作系统支持。网页群集可以实现透明的复制、负载平衡以及表示内容容错,如Web购物车;组件群集则处理复杂的复制、负载平衡和EJB组件容错,以及状态对象(如EJB实体)的恢复。

无论是网页群集,还是组件群集,对于电子商务解决方案所要求的可扩展性和可用性都是至关重要的。共享的客户机/服务器和数据库连接以及数据缓存和EJB都增强了性能表现。这是其它Web应用系统所不具备的。

补充

与其Weblogic同类型的产品还有:IBM WebSphere、Apache Tomcat、Redhat Jboss等,Weblogic的默认端口是:7001。

历史漏洞概况

我们接下来通过Weblogic历史漏洞的链接可以看到Weblogic曾经曝出的历史漏洞,其中大多数的Weblogic漏洞都是反序列化漏洞

在这里插入图片描述

参考文章:WebLogic安全研究报告

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

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

相关文章

【数据结构】 栈(Stack)的应用场景

文章目录 🌏前言🍀改变元素的序列🚩场景一📌解析: 🚩场景二📌解析: 🎍将递归转化为循环🌳[括号匹配](https://leetcode.cn/problems/valid-parentheses/)&…

指针-C语言(初阶)

目录 一、什么是指针 二、指针和指针类型 2.1 指针-整数 2.2 指针的解引用 三、野指针 3.1 野指针形成原因 3.2 如何规避野指针 四、指针运算 4.1 指针-整数 4.2 指针-指针 4.3 指针的关系运算 五、指针和数组 六、二级指针 七、指针数组 一、什么是指针 指针是内存中一个…

k-近邻算法概述,k-means与k-NN的区别对比

目录 k-近邻算法概述 k-近邻算法细节 k值的选取 分类器的决策 k-means与k-NN的区别对比 k-近邻算法概述 k近邻(k-nearest neighbor, k-NN)算法由 Cover 和 Hart 于1968年提出,是一种简单的分类方法。通俗来说,就是给定一个…

Linux操作系统--网络配置(2)

在上一次课程中,我们对Linux课程中的网络有了一个了解,下面我们来看看如何配置网络IP。 1.配置网络IP地址 在Linux操作系统中,比如搭建集群,这一个时候如果使用DHCP实现动态IP的分配,那么如果需要访问管理其中一个节点操作时候,就需要通过其IP访问。这一个时候还得去查看…

十五、systemctl命令如何使用?

在Linux系统中,一些内置服务可以通过systemctl控制,部分第三方软件也可以通过systemctl控制。 1、基础语法 start:开启服务; stop:关闭服务; status:查看服务当前状态; enable&a…

【推荐】Spring与Mybatis集成整合

目录 1.概述 2.集成 2.1代码演示: 3.整合 3.1概述 3.2 进行整合分页 接着上两篇,我已经写了Mybatis动态之灵活使用,mybatis的分页和特殊字符的使用方式接下来把它们集成起来,是如何的呢👇👇&#x1…

Stm32的时钟系统以及使用SysTick滴答定时器实现延时

前言 STM32的时钟系统由多个时钟源和时钟树组成时钟源包括主时钟源(HSE)、内部高速时钟源(HSI)、内部低速时钟源(LSI)和外部低速时钟源(LSE)。时钟树由多个时钟分频器和时钟门控器组…

五、多表查询-2.概述分类

一、多表查询概述 二、演示 1、准备数据 (1)创建emp1表并注入数据,添加外键: 2、多表查询 一共 102条数据:17个员工,6个部门,176102 3、消除笛卡尔积 一共16条记录: 为啥17个员工&…

Aos插件实现滚动动画效果

aos文档 aos使用感受跟wow相似&#xff0c;但比wow多了浏览器回滚&#xff0c;动画效果会再次展现 安装 npm install aos使用 main.js全局导入css import aos/dist/aos.cssvue文件 <template><div class"box"><div class"code" v-for&q…

Java接收json参数

JSON 并不是唯一能够实现在互联网中传输数据的方式&#xff0c;除此之外还有一种 XML 格式。JSON 和 XML 能够执行许多相同的任务&#xff0c;那么我们为什么要使用 JSON&#xff0c;而不是 XML 呢&#xff1f; 之所以使用 JSON&#xff0c;最主要的原因是 JavaScript。众所周知…

搭建 Qt6 开发环境

作者&#xff1a; 一去、二三里 个人微信号&#xff1a; iwaleon 微信公众号&#xff1a; 高效程序员 Qt 是一个跨平台的 C 应用程序开发框架&#xff0c;它提供了丰富的组件库和工具&#xff0c;使得开发人员可以在各种平台上轻松地开发 GUI 应用程序。 由于我们的教程 《细说…

嵌入式设备应用开发(发现需求和提升价值)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 很多做技术的同学,都会陷入到技术的窠臼之中。对于如何做具体的产品、实现具体的技术,他们可能很感兴趣。但是做出来的东西做什么用,或者说是有没有竞争力,事实上他们不是很关心…

二叉搜索树-----红黑树

✅<1>主页&#xff1a;我的代码爱吃辣&#x1f4c3;<2>知识讲解&#xff1a;数据结构——红黑树☂️<3>开发环境&#xff1a;Visual Studio 2022&#x1f4ac;<4>前言&#xff1a;红黑树也是一颗二叉搜索树&#xff0c;其作为map&#xff0c;set的底层…

AttributeError: module ‘torchvision.io.image‘ has no attribute ‘ImageReadMode‘

我的torch和torchvision版本 import torch torch.__version__‘1.7.1cu110’ import torchvision torchvision.__version__‘0.8.2cu110’ 原代码 mode torchvision.io.image.ImageReadMode.RGB labels.append(torchvision.io.read_image(os.path.join(voc_dir, Segmentat…

文生图模型之Stable Diffusion

原始文章地址 autoencoder CLIP text encoder tokenizer最大长度为77&#xff08;CLIP训练时所采用的设置&#xff09;&#xff0c;当输入text的tokens数量超过77后&#xff0c;将进行截断&#xff0c;如果不足则进行paddings&#xff0c;这样将保证无论输入任何长度的文本&…

Vue2向Vue3过度核心技术综合案例

目录 1 面经基础版-案例效果分析1.面经效果演示2.功能分析3.实现思路分析&#xff1a;配置路由功能实现 2 面经基础版-一级路由配置3 面经基础版-二级路由配置1.使用场景2.语法3.代码实现 4 面经基础版-二级导航高亮1.实现思路2.代码实现 5 面经基础版-首页请求渲染1.步骤分析2…

新开通的抖店体验分太低,达人不愿意合作怎么办?解决办法如下

我是王路飞。 找达人带货的玩法是最适合新手抖店商家的&#xff0c;同时也是最适合长线去玩的方法。 但是新手前期找达人的时候&#xff0c;会有一个难点&#xff0c;就是自己的抖店因为是新开通的&#xff0c;所以要么没体验分&#xff0c;要么就是体验分太低了&#xff0c;…

崔东树:汽车行业正在迎来令人兴奋的时代,智能座舱推动私车普及

随着新能源汽车和智能座舱的不断发展&#xff0c;汽车行业正经历着一场革命性的变革。当前&#xff0c;不仅汽车电动化的进程在加速推进&#xff0c;智能座舱的升级与完善也成为了行业的热点话题。崔东树指出&#xff0c;随着汽车电动化和智能化的发展&#xff0c;智能座舱的快…

学习高等数学需要的初等数学知识

文章目录 名词解释常用希腊字符读音幂、根式和对数常用的三角函数值三角函数变换一元二次方程求解充分条件和必要条件切线方程、斜率和法线隐函数极坐标排列组合 名词解释 教材中存在着许多熟悉且陌生的词汇&#xff0c;作者在此进行了整理&#xff1a; 概念&#xff1a;概念…

开始MySQL之路—— DDL语法、DML语法、DQL语法基本操作详解

DDL语法 DDL&#xff08;Data Definition Language&#xff09; 数据定义语言&#xff0c;该语言部分包括以下内容。 对数据库的常用操作 对表结构的常用操作 修改表结构 对数据库的常用操作 1: 查看当前所有的数据库 show databases; 2&#xff1a;创建数据库 create dat…