• WebLogic浅析


    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服务。

  • 相关阅读:
    Bruce Eckel:编程生涯(转载)
    NSScanner用法详解
    如何为github上的项目添加gif效果图
    iOS-网址集
    支持后台播放音频
    iOS:UITableView 方法 属性
    Quartz2D简介及基本线条绘制
    遍历输出所有子视图(View)
    UIView常用属性与方法/UIKit继承结构
    netty02(接受消息以后进行返回)
  • 原文地址:https://www.cnblogs.com/conquer-vv/p/13383973.html
Copyright © 2020-2023  润新知