WebLogic浅析

摘要:
WebLogic安装的官方网站上的下载和安装过程没有什么特别之处。我们自己去看看吧!WebLogic是一个部署类似于Tomcat的Java Web程序的服务器。WebLogicServer凭借其卓越的集群技术,具有处理关键Web应用程序系统问题所需的性能、可扩展性和高可用性。WebLogicServer实现了网页集群和EJB组件集群,不需要任何特殊的硬件或操作系统支持。因此,WebLogic的可扩展性远远超过Tomcat。
WebLogic安装

官网下载
安装过程没啥特别的,不多说了自己去看吧!

WebLogic简介

  WebLogic是美国Oracle公司出品的一个Application Server,确切的说是一个基于JavaEE架构的中间件,WebLogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器。将Java的动态功能和Java Enterprise标准的安全性引入大型网络应用的开发、集成、部署和管理之中。
  WebLogic就是和我们常用的Tomcat差不多的部署Java Web程序的服务器。WebLogic Server凭借其出色的群集技术,拥有处理关键Web应用系统问题所需的性能、可扩展性和高可用性。WebLogic Server既实现了网页群集,也实现了EJB组件 群集,而且不需要任何专门的硬件或操作系统支持。网页群集可以实现透明的复制、负载平衡以及表示内容容错 。无论是网页群集,还是组件群集,对于电子商务解决方案所要求的可扩展性和可用性都是至关重要的。共享的客户机/服务器和数据库连接以及数据缓存和EJB都增强了性能表现。这是其它Web应用系统所不具备的。所以,在扩展性方面WebLogic是远远超越了Tomcat。

中间件(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融合中间件提供两种类型的组件:

  • 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的字眼,且Oracle融合中间件和WebLogic也是我在漏洞分析时经常混淆的。实际上WebLogic是组成Oracle融合中间件的核心。几乎所有的Oracle融合中间件产品都需要运行WebLogic Server。因此,本质上,WebLogic Server不是Oracle融合中间件,而是构建或运行Oracle融合中间件的基础,Oracle融合中间件和WebLogic密不可分却在概念上不相等。

Oracle WebLogic Server域

  EJB (Enterprise Java Beans) 是基于分布式事务处理的企业级应用程序的组件。Sun公司发布的文档中对EJB的定义是:EJB是用于开发和部署多层结构的、分布式的、面向对象的Java应用系统的跨平台的构件体系结构。
  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爆出的漏洞以反序列化为主,通常反序列化漏洞也最为严重,官方漏洞评分通常达到9.8。WebLogic反序列化漏洞又可以分为XMLDecoder反序列化漏洞和T3反序列化漏洞。其他漏洞诸如任意文件上传、XXE等等也时有出现。因此后面的文章将以WebLogic反序列化漏洞为主讲解WebLogic安全问题。

反序列化漏洞

  序列化 (Serialization) 是指将数据结构或对象状态转换成字节流 (例如存储成文件、内存缓冲,或经由网络传输) ,以留待后续在相同或另一台计算机环境中,能够恢复对象原来状态的过程。
序列化和反序列化详解参考链接
  当服务端允许接收远端数据进行反序列化时,客户端可以提供任意一个服务端存在的目标类的对象 (包括依赖包中的类的对象) 的序列化二进制串,由服务端反序列化成相应对象。如果该对象是由攻击者『精心构造』的恶意对象,而它自定义的readObject()中存在着一些『不安全』的逻辑,那么在对它反序列化时就有可能出现安全问题。

XMLDecoder反序列化漏洞

  XML是一种标记语言,在开发过程中,可以使用XML进行进行数据的传输或充当配置文件。XMLDecoder是用于将JavaBean或POJO对象序列化和反序列化的一套API,开发人员可以通过利用XMLDecoder的readject()方法将任意的XML反序列化,从而使得整个程序更加灵活。

T3反序列化漏洞

  JNDI(Java Naming and Directory Interface)是SUN公司提供的一种标准的Java命名系统接口,JNDI提供统一的客户端API,为开发人员提供了查找和访问各种命名和目录服务的通用、统一的接口。
  RMI(Remote Method Invocation)即远程方法调用。能够让在某个Java虚拟机上的对象像调用本地对象一样调用另一个Java虚拟机中的对象上的方法。它支持序列化的Java类的直接传输和分布垃圾收集。Java RMI的默认基础通信协议为JRMP。
  WebLogic RMI和T3反序列化漏洞有很大关系,因为T3就是WebLogic RMI所使用的协议。WebLogic RMI主要使用T3协议(还有基于CORBA的IIOP协议)进行客户端到服务端的数据传输。Java RMI即远程方法调用,默认使用JRMP协议通信。WebLogic RMI是WebLogic对Java RMI的实现,其使用T3或IIOP协议作为通信协议。无论是Java RMI还是WebLogic RMI,都需要使用JNDI去发现远端的RMI服务。

免责声明:文章转载自《WebLogic浅析》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇在debian下安装QT 5.10 32位毕业论文章节标题设置以及段前1.5行设置显示问题下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

mybatis批量增、删、改(更新)操作oracle和mysql批量写法小记

前言:用mybatis也好几年了,mybatis在批量的增删操作也写起来也是比较简单的,只有批量更新这一块是特别坑,特此记录。注:本文主要用来记录oracle和mysql数据库在使用mybatis的情况下批量增、删、改(更新)的常用写法 一、批量插入1、oracle写法: <insert parameterType="cc.eguid.Zaixcs"...

oracle 将表名和字段名变为大写

文章目录 前言 一、批量将表名变为大写 二、批量将空间内所有表的所有字段名变成大写 三、将用户空间的所有表名及所有字段变为大写 前言 当使用powerdesigner创建数据库时要注意大小写。注:以下脚本在oracle 10g,11g上正确执行 一、批量将表名变为大写 1 begin 2 for c in (select table_name t...

Oracle Cursor的使用

When Oracle Database executes a SQL statement, it stores the result set and processing information in an unnamedprivate SQL area. A pointer to this unnamed area, called acursor,...

Dapper完美兼容Oracle,执行存储过程,并返回结果集。

Dapper完美兼容Oracle,执行存储过程,并返回结果集。 这个问题,困扰了我整整两天。 刚刚用到Dapper的时候,感觉非常牛掰。特别是配合.net 4.0新特性dynamic,让我生成泛型集合,再转json一气呵成。 不过,各种ORM总有让人吐槽的地方。。。 比如,我之前在SqlServer上写测试,搞封装,没有任何问题。CURD、批量操作、存储过...

关于oracle 数据库效率的优化

最近项目快要快要结束了,我们最终还是要面对我们一直存在的问题,就是数据库查询编码的问题,但是通过各个方面观察我们发现数据库仅仅200w条数据查询议一天的数据也就仅仅不到两万条数据没结果查了将近两分钟,这按章正常状态来讲那是不可能出现的情况,但是经过很久的观察我们还是找到了原因,那就是我们在做sql语句编写的时候那是不合理的 接下来我就给大家罗列一下相关情况...

primary库新增数据文件后,standby库无法创建文件并终止数据同步

主库是RAC环境,使用asm存放数据文件,备库是操作系统本地文件系统存放数据文件。在主库执行以下操作: SQL> alter tablespace ysdv add datafile '+data' size 1024m autoextend on next 100m maxsize 10240m; 备库的alert日志报以下错误: Mon Ju...