CN110276202B - 一种反序列化漏洞的检测方法及装置 - Google Patents

一种反序列化漏洞的检测方法及装置 Download PDF

Info

Publication number
CN110276202B
CN110276202B CN201910551537.XA CN201910551537A CN110276202B CN 110276202 B CN110276202 B CN 110276202B CN 201910551537 A CN201910551537 A CN 201910551537A CN 110276202 B CN110276202 B CN 110276202B
Authority
CN
China
Prior art keywords
weblogic server
protocol
vulnerability
service
weblogic
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910551537.XA
Other languages
English (en)
Other versions
CN110276202A (zh
Inventor
郑祎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
WeBank Co Ltd
Original Assignee
WeBank Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by WeBank Co Ltd filed Critical WeBank Co Ltd
Priority to CN201910551537.XA priority Critical patent/CN110276202B/zh
Publication of CN110276202A publication Critical patent/CN110276202A/zh
Priority to PCT/CN2020/096901 priority patent/WO2020259390A1/zh
Application granted granted Critical
Publication of CN110276202B publication Critical patent/CN110276202B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明涉及金融科技领域,并公开了一种反序列化漏洞的检测方法及装置,在获取到检测漏洞任务后,通过安全套接层SSL协议访问WebLogic服务器的服务端口;若确定成功访问WebLogic服务器的服务端口,则确定WebLogic服务器的服务端口是否支持T3S协议服务;若确定WebLogic服务器的服务端口支持T3S协议服务,且与WebLogic服务器的远程方法调用RMI服务连接成功,则确定WebLogic服务器存在T3S协议的WebLogic Java反序列化漏洞。通过该方法能够实现针对T3S协议的反序列化漏洞检测,并能够在确定服务端口能够访问且服务端口支持T3S协议服务的前提下进行的,提高检测效率。

Description

一种反序列化漏洞的检测方法及装置
技术领域
本发明涉及金融科技(Fintech)技术领域,尤其涉及一种反序列化漏洞的检测方法及装置。
背景技术
WebLogic是基于Java EE架构的中间件,可作为用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器。广泛用于政府、金融、医疗、交通、教育、科研等行业及领域。
当WebLogic使用T3S协议用于服务管理时,提供的Web服务的协议为HTTPS;使用T3协议用于服务管理时,提供的Web服务的协议为HTTP。因此使用T3S协议的WebLogic所提供的服务安全性要求更高,说明此类WebLogic服务中支持的业务功能更重要。在政府、金融、医疗、交通、教育、科研等领域中,如基金、证券、保险、医院、交通局、教育主管部门、高校、研究所等行业或部门中,其部署的WebLogic大多提供HTTPS服务,使用T3S协议进行服务管理。
WebLogic存在Java反序列化漏洞,当攻击者向WebLogic发送精心构造的反序列化数据时,会触发漏洞,会执行攻击者指定的操作,可以控制服务器,窃取数据库中的数据,造成严重影响。
现有技术中,只有针对T3协议的反序列化漏洞的检测方法,并没有针对T3S协议的反序列化漏洞的检测方法,所以现有技术中亟需一种针对T3S协议的反序列化漏洞的检测方法。
发明内容
有鉴于此,本发明实施例提供一种反序列化漏洞的检测方法及装置,至少解决了现有技术存在的问题。
一方面,本发明实施例提供一种反序列化漏洞的检测方法,包括:
在获取到检测漏洞任务后,通过安全套接层SSL协议访问WebLogic服务器的服务端口;
若确定成功访问WebLogic服务器的服务端口,则确定所述WebLogic服务器的服务端口是否支持T3S协议服务;
若确定所述WebLogic服务器的服务端口支持T3S协议服务,且与所述WebLogic服务器的远程方法调用RMI服务连接成功,则确定所述WebLogic服务器存在T3S协议的WebLogic Java反序列化漏洞。
本发明实施例中,在获取到检测漏洞任务后,开始进行针对T3S协议的反序列化漏洞进行检测,首先确定WebLogic服务器的服务端口是否能够访问,即是否能够通过安全套接层SSL协议访问WebLogic服务器的服务端口,并在确定能够进行访问后,则确定该WebLogic服务器的服务端口是否支持T3S协议服务,若支持T3S协议服务,则尝试与WebLogic服务器的远程方法调用RMI服务连接,若连接成功,则可以确定WebLogic服务器存在T3S协议的WebLogic Java反序列化漏洞。通过上述方法能够实现针对T3S协议的反序列化漏洞检测,并且能够在确定服务端口能够访问且服务端口支持T3S协议服务的前提下进行的,避免无用的检测步骤,提高检测效率。
可选的,所述确定所述WebLogic服务器的服务端口支持T3S协议服务,包括:
向所述WebLogic服务器发送T3S协议数据;
若确定接收到的所述WebLogic服务器针对所述T3S协议返回的反馈数据与T3S协议规定的反馈数据匹配,则确定所述WebLogic服务器的服务端口支持T3S协议服务。
可选的,所述确定所述WebLogic服务器的服务端口支持T3S协议服务,且与所述WebLogic服务器的远程方法调用RMI服务连接成功后,与所述WebLogic服务器的RMI服务连接成功前,还包括:
生成第一漏洞利用数据,并将所述第一漏洞利用数据发送给所述WebLogic服务器,所述第一漏洞利用数据用于指示所述WebLogic服务器在所述WebLogic服务器的当前目录下创建远程指令文件目录;
生成第二漏洞利用数据,所述第二漏洞利用数据中包括远程指令文件,所述远程指令文件用于启动RMI服务,并将所述第二漏洞利用数据发送给所述WebLogic服务器,所述第二漏洞利用数据用于指示所述WebLogic服务器在所述远程指令文件目录中保存所述远程指令文件;
生成第三漏洞利用数据,所述第三漏洞利用数据用于指示所述WebLogic服务器执行所述远程指令文件,启动所述WebLogic服务器的RMI服务。
可选的,所述与所述WebLogic服务器的远程方法调用RMI服务连接成功,包括:
在获取所述WebLogic服务器的SSL证书后,若确定通过T3S协议与所述WebLogic服务器的RMI服务连接成功,则确定与所述WebLogic服务器的远程方法调用RMI服务连接成功。
可选的,所述方法还包括:
在通过传输控制协议TCP成功访问WebLogic服务器的服务端口后,确定所述WebLogic服务器的服务端口是否支持T3协议服务;
若确定所述WebLogic服务器的服务端口支持T3协议服务,且与所述WebLogic服务器的远程方法调用RMI服务连接成功,则确定所述WebLogic服务器存在T3协议的WebLogicJava反序列化漏洞。
可选的,所述获取检测漏洞任务,包括:
将所述检测漏洞任务加入到待执行任务队列中,并使用线程池中的空闲线程从所述执行任务队列获取所述检测漏洞任务。
一方面,本发明实施例提供一种反序列化漏洞的检测装置,包括:
安全套接层SSL协议连接单元,用于在获取到检测漏洞任务后,通过安全套接层SSL协议访问WebLogic服务器的服务端口;
T3S协议服务确定单元,用于若确定成功访问WebLogic服务器的服务端口,则确定所述WebLogic服务器的服务端口是否支持T3S协议服务;
漏洞确定单元,用于若确定所述WebLogic服务器的服务端口支持T3S协议服务,且与所述WebLogic服务器的远程方法调用RMI服务连接成功,则确定所述WebLogic服务器存在T3S协议的WebLogic Java反序列化漏洞。
可选的,所述T3S协议服务确定单元具体用于:
向所述WebLogic服务器发送T3S协议数据;
若确定接收到的所述WebLogic服务器针对所述T3S协议返回的反馈数据与T3S协议规定的反馈数据匹配,则确定所述WebLogic服务器的服务端口支持T3S协议服务。
可选的,所述装置还包括:
数据生成单元,用于生成第一漏洞利用数据,并将所述第一漏洞利用数据发送给所述WebLogic服务器,所述第一漏洞利用数据用于指示所述WebLogic服务器在所述WebLogic服务器的当前目录下创建远程指令文件目录;
生成第二漏洞利用数据,所述第二漏洞利用数据中包括远程指令文件,所述远程指令文件用于启动RMI服务,并将所述第二漏洞利用数据发送给所述WebLogic服务器,所述第二漏洞利用数据用于指示所述WebLogic服务器在所述远程指令文件目录中保存所述远程指令文件;
生成第三漏洞利用数据,所述第三漏洞利用数据用于指示所述WebLogic服务器执行所述远程指令文件,启动所述WebLogic服务器的RMI服务。
可选的,所述漏洞确定单元具体用于:
在获取所述WebLogic服务器的SSL证书后,则确定通过T3S协议与所述WebLogic服务器的RMI服务连接成功。
可选的,所述装置还包括T3协议漏洞检测单元,所述T3协议漏洞检测单元用于:
在通过传输控制协议TCP成功访问WebLogic服务器的服务端口后,确定所述WebLogic服务器的服务端口是否支持T3协议服务;
若确定所述WebLogic服务器的服务端口支持T3协议服务,且与所述WebLogic服务器的远程方法调用RMI服务连接成功,则确定所述WebLogic服务器存在T3协议的WebLogicJava反序列化漏洞。
可选的,所述装置还包括获取单元,所述获取单元用于:
将所述检测漏洞任务加入到待执行任务队列中,并使用线程池中的空闲线程从所述执行任务队列获取所述检测漏洞任务。
一方面,本发明实施例提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现反序列化漏洞的防护方法的步骤。
一方面,本发明实施例提供了一种计算机可读存储介质,其存储有可由计算机设备执行的计算机程序,当所述程序在计算机设备上运行时,使得所述计算机设备执行反序列化漏洞的防护方法的步骤。
在本发明实施例中,在获取到检测漏洞任务后,开始进行针对T3S协议的反序列化漏洞进行检测,首先确定WebLogic服务器的服务端口是否能够访问,即是否能够通过安全套接层SSL协议访问WebLogic服务器的服务端口,并在确定能够进行访问后,则确定该WebLogic服务器的服务端口是否支持T3S协议服务,若支持T3S协议服务,则尝试与WebLogic服务器的远程方法调用RMI服务连接,若连接成功,则可以确定WebLogic服务器存在T3S协议的WebLogic Java反序列化漏洞。通过上述方法能够实现针对T3S协议的反序列化漏洞检测,并且能够在确定服务端口能够访问且服务端口支持T3S协议服务的前提下进行的,避免无用的检测步骤,提高检测效率。并且本发明实施例中的检测方法及装置还可以针对T3协议的WebLogic Java反序列化漏洞,实现了多种漏洞的检测;还可以通过任务队列,可以针对多个WebLogic服务器进行漏洞检测,提高了检测效率。
附图说明
图1为本发明实施例提供的一种反序列化漏洞的检测方法的流程示意图;
图2为本发明实施例提供的一种针对T3S协议的反序列化漏洞检测方法的流程示意图;
图3为本发明实施例提供的一种针对T3S协议的反序列化漏洞检测方法的时序流程示意图;
图4为本发明实施例提供的一种针对T3协议的反序列化漏洞检测方法的流程示意图;
图5为本发明实施例提供的一种针对T3协议的反序列化漏洞检测方法的时序流程示意图;
图6为本发明实施例提供的一种针对T3协议以及T3S协议的反序列化漏洞检测方法的流程示意图;
图7为本发明实施例提供的一种并行进行反序列化漏洞的检测方法的流程示意图;
图8为本发明实施例提供的一种反序列化漏洞的检测装置的结构示意图;
图9为本发明实施例提供的一种计算机设备的结构示意图。
具体实施方式
为了使本申请的目的、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
为了方便理解,下面对本申请实施例中涉及的名词进行解释。
WebLogic:WebLogic是美国Oracle公司出品的一个application server,确切的说是一个基于JAVAEE(Java平台企业版)架构的中间件,WebLogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器。将Java的动态功能和Java Enterprise标准的安全性引入大型网络应用的开发、集成、部署和管理之中。
序列化与反序列化,序列化的过程就是把一个对象变成可以传输的数据,而反序列化的过程就是把序列化数据再变回对象的过程。
反序列化漏洞,如果Java应用对用户输入,即不可信数据做了反序列化处理,那么攻击者可以通过构造恶意输入,让反序列化产生非预期的对象,非预期的对象在产生过程中就有可能带来任意代码执行。在利用WebLogic Java反序列化漏洞时,需要向WebLogic提供服务的端口发送T3/T3S协议数据包。T3是一种优化协议,用于在WebLogic Server和其他Java程序(包括客户端和其他WebLogic Server)之间传输数据。WebLogic Server会跟踪与其连接的每个Java虚拟机(JVM),并创建单个T3连接以承载每个JVM的所有流量。T3S是在SSL(Secure Sockets Layer,安全套接层)上的WebLogic T3协议。.
在具体实践过程中,本发明的发明人发现,现有技术中的反序列化漏洞的检测方法都是针对于T3协议的,无法检测基于T3S协议的Java反序列化漏洞,基于现有技术中的反序列漏洞检测方法的缺点,本申请的提出了一种反序列化漏洞的检测方法,具体如图1所示,包括以下步骤:
步骤S101,在获取到检测漏洞任务后,通过安全套接层SSL协议访问WebLogic服务器的服务端口。
本发明实施例中的方法适用于漏洞检测装置,该装置用于检测WebLogic服务器中是否至少存在T3S协议漏洞,具体的,在本发明实施例中,在获取到检测漏洞任务后,开始针对待检测的WebLogic服务器进行漏洞检测。
首先通过安全套接层SSL协议访问WebLogic服务器的服务端口,确定该服务器端口是否可以提供服务。具体的,在本发明实施例中,通过安全套接层SSL协议向WebLogic服务器发送数据,若能够接收到WebLogic服务器返回的已连接成功消息,则确定成功访问WebLogic服务器的服务端口,否则认为该WebLogic服务器的服务端口不支持访问。
步骤S102,若确定成功访问WebLogic服务器的服务端口,则确定所述WebLogic服务器的服务端口是否支持T3S协议服务。
具体的,在本发明实施例中,当确定成功访问WebLogic服务器的服务端口后,还需要确定该端口是否支持T3S协议服务。
在本发明实施例中,向WebLogic服务器发送T3S协议;若确定接收到的WebLogic服务器针对T3S协议返回的反馈数据与T3S协议规定的反馈数据匹配,则确定WebLogic服务器的服务端口支持T3S协议服务。
也就是说,在本发明实施例中,向WebLogic服务器发送T3S协议后,收到的反馈数据需要与T3S协议规定的反馈数据匹配,若匹配,则认为WebLogic服务器的服务端口支持T3S协议服务。
一种可选的实施例,对WebLogic服务器的T3S协议数据发送时进行抓包可获得T3S协议连接信息。如使用WebLogic 9.2.0版本作为客户端时,发送的T3S协议连接信息为“t3S9.2.0\nAS:255\nHL:19\n\n”,T3S协议连接信息包含三行有效数据,第一行的内容为“t3S”与WebLogic客户端的版本号。以上T3S协议连接信息可在连接不同版本的WebLogic服务器时使用。
若使用WebLogic 10.0.2版本作为服务器时,也就是说,作为T3S漏洞检测的服务器时,在接收到T3S协议后,返回的信息为“HELO:10.0.2.0.false\nAS:2048\nHL:19\n\n”,即连接端口后返回数据满足以“HELO:”开头,且同一行的后续内容为WebLogic版本号信息时,可以认定该端口提供了WebLogic的T3S协议服务,则认为WebLogic服务器的服务端口支持T3S协议服务。
步骤S103,若确定所述WebLogic服务器的服务端口支持T3S协议服务,且与所述WebLogic服务器的远程方法调用RMI服务连接成功,则确定所述WebLogic服务器存在T3S协议的WebLogic Java反序列化漏洞。
具体的,在本发明实施例中,现有技术中针对T3协议的反序列漏洞的检测是在进行漏洞检测时会尝试利用Java反序列化漏洞在WebLogic服务启动新的RMI服务,扫描程序在连接RMI服务成功后,在执行完毕远程命令成功时才认定存在漏洞,实际上当连接了RMI服务时,就可以认定存在漏洞。所以在本发明实施例中,在确定WebLogic服务器的服务端口支持T3S协议服务后,就尝试与WebLogic服务器的远程方法调用RMI服务连接,若连接成功,则可以确定WebLogic服务器存在T3S协议的WebLogic Java反序列化漏洞。
可选的,在步骤S101中,为了能够进行多台WebLogic服务器的漏洞检测,可以在获取到检测漏洞任务后,将该检测漏洞任务加入到待执行任务序列中,调用线程池中的空闲线程,从待执行任务序列中获取检测漏洞任务后,开始进行漏洞检测。
具体的,在本发明实施例中,在对WebLogic服务器进行反序列化漏洞检测时,每执行一次命令,都需要向WebLogic服务器发送两次数据,一次数据为T3S协议连接信息,另一次为负载数据,该负载数据用于触发WebLogic服务器中的漏洞。
具体的,在本发明实施例中,确定接收到的WebLogic服务器针对T3S协议返回的反馈数据与T3S协议规定的反馈数据匹配后,确定与WebLogic服务器的RMI服务连接成功前,首先需要生成第一漏洞利用数据,并将第一漏洞利用数据发送给WebLogic服务器,第一漏洞利用数据用于指示WebLogic服务器在WebLogic服务器的当前目录下创建远程指令文件目录;生成第二漏洞利用数据,第二漏洞利用数据中包括远程指令文件,远程指令文件用于启动RMI服务,并将第二漏洞利用数据发送给WebLogic服务器,第二漏洞利用数据用于指示WebLogic服务器在远程指令文件目录中保存远程指令文件;生成第三漏洞利用数据,第三漏洞利用数据用于指示WebLogic服务器执行远程指令文件,启动WebLogic服务器的RMI服务。
在本发明实施例中,第一漏洞利用数据、第二漏洞利用数据、第三漏洞利用数据为payload负载数据,也就是说,生成payload1并发送,若WebLogic服务器存在Java反序列化漏洞,WebLogic服务器在接收到该payload1后,会在当前目录下创建远程指令文件目录。然后生成payload2并发送给WebLogic服务器,payload2中包括远程指令文件,WebLogic服务器会在远程指令文件目录中保存远程指令,即jar包。
生成payload3并发送WebLogic服务器,使WebLogic加载远程指令执行jar包,并启动RMI服务方法。
当然,在本发明实施例中,还包括其它数据,这些数据用于停止WebLogic服务器中的RMI服务以及清除WebLogic服务器中的jar包,具体的,生成payload4并发送,使WebLogic服务器加载远程指令执行jar包并执行停止RMI服务方法。生成payload5并发送,若WebLogic服务器存在Java反序列化漏洞,在接收到该payload5后,会清空jar包文件内容。
在本发明实施例中,发送的payload数据包含三部分,第一部分为数据总长度的十六进制形式,长度为四个字节,第二部分可使用固定数据,对WebLogic的T3协议数据发送时进行抓包可获得该部分固定数据,并可直接使用,第三部分为payload本身。以数据总长度为1711为例,第一部分内容应为“00 00 06af”(1711=0x6AF)。第二部分固定数据中包含可见字符与不可见字符,其中包含了WebLogic版本信息等。第三部分payload为Java序列化数据,Java序列化数据以“ac ed 00 05”开头,其中0xaced为Java序列化数据的魔数,0x0005为Java序列化的版本。
可选的,在获取所述WebLogic服务器的SSL证书后,在正常情况下都会对WebLogic服务器的SSL证书进行验证。由于WebLogic服务器的SSL证书可能不在检测装置的受信任证书列表中,会导致SSL连接时握手失败,无法连接WebLogic的RMI服务,导致无法进行漏洞检测,所以在本发明实施例中,为了能够进行漏洞检测,需要提前将检测装置对WebLogic服务器SSL证书验证的操作屏蔽,使得在连接WebLogic服务器T3S协议的RMI服务时不再出现握手失败问题,继而能够使漏洞检测可以正常进行。
进一步地,现有技术中,检测装置会执行主机名验证检查。检测装置将从WebLogic服务器接收的数字证书中的CN字段与客户端用于连接WebLogic服务器的URL中的WebLogic服务器名称进行比较。CN字段和WebLogic服务器名称必须匹配才能通过主机名验证检查,用于防止中间人攻击。
检测装置在进行漏洞检测时,很可能出现SSL证书中的CN字段与
WebLogic服务器URL的服务器名称不符的情况,例如通过网际协议IP而不是域名连接WebLogic服务器,在这种情况下检测装置会终止SSL连接操作,导致无法进行漏洞检测。所以在本发明实施例中,取消对SSL服务器主机名的验证。
可选的,在本发明实施例中,可以通过在检测装置的JVM启动参数中增加“-Dweblogic.security.SSL.ignoreHostnameVerification=true”,可以取消检测装置对SSL服务器的主机名验证,使得当SSL证书中的地址与服务器URL的服务器名称不符时能够正常建立SSL连接,从而正常进行漏洞检测。
也就是说,在本发明实施例中,在获取WebLogic服务器的SSL证书后,取消对WebLogic服务器的SSL证书验证以及取消对SSL服务器的主机名验证的过程,若确定通过T3S协议与所述WebLogic服务器的RMI服务连接成功,则确定与所述WebLogic服务器的远程方法调用RMI服务连接成功。
在本发明实施例中,检测装置除了能够对T3S协议的反序列化漏洞进行检测外,还可以对T3协议的反序列化漏洞进行检测。具体的,在通过传输控制协议TCP成功访问WebLogic服务器的服务端口后,确定WebLogic服务器的服务端口是否支持T3协议服务;若确定WebLogic服务器的服务端口支持T3协议服务,且与WebLogic服务器的RMI服务连接成功,则确定所述WebLogic服务器存在T3协议的WebLogic Java反序列化漏洞。
也就是说,在通过TCP协议成功访问WebLogic服务器的服务端口,确定该服务端口可以访问,然后确定该服务器端口是否支持T3协议,若支持,则尝试与WebLogic服务器的RMI服务进行连接,若连接成功,则确定存在T3协议的WebLogic Java反序列化漏洞。
具体的,在检测过程中,同检测T3S漏洞一样,通过向WebLogic服务器发送5个payload数据,实现检测漏洞的过程。
可选的,在本发明实施例中,当确定WebLogic服务器存在T3或者T3S协议的反序列化漏洞后,还需要将漏洞信息进行记录,本发明实施例中,记录的漏洞信息至少包括WebLogic服务器IP、IP对应的地区、WebLogic端口信息、WebLogic版本信息、WebLogic域路径、操作系统名称、操作系统主机名、操作系统用户、Web服务协议(例如HTTP/HTTPS)、网站标题、网站URL、证书信息(包括域名、机构信息等)。
在本发明实施例中,能够通过上述实施例中的方法实现针对T3S协议的反序列化漏洞检测,并首先确定了所连接的WebLogic服务器服务端口是否提供T3/T3S协议服务,若所连接端口不提供T3/T3S协议服务,则不会存在Java反序列化漏洞,也不需要进行反序列化漏洞检测,对不需要检测的端口跳过,提高检测效率;由于在检测过程中建立的文件目录是在WebLogic服务器的当前目录中的,所以使用的payload支持多种操作系统,不限于Windows与Linux,还支持AIX、SunOS、HP-UX等操作系统,兼容性更好;在检测时不需要提前设置目标机器的操作系统,对于不同的操作系统均能够支持检测,提高检测效率;并且在尝试利用漏洞在WebLogic服务启动RMI服务,当检测装置连接RMI服务成功时,就认定存在漏洞,精简了检测步骤,且不会影响检测效果,能够提高漏洞检测效率;本发明实施例中的检测方法可以支持并行对不同的服务器进行漏洞检测,提高检测效率。
为了更好的解释本申请实施例,下面结合具体的实施场景描述本申请实施例提供的一种反序列化漏洞的检测方法,该方法应用在检测装置中,该检测方法的具体流程针对T3S协议的反序列化漏洞进行检测,具体过程如图2所示:
步骤S201,接收检测漏洞任务;
步骤S202,向WebLogic服务器发送SSL协议;
步骤S203,确定WebLogic服务器的服务端口是否可以访问,若是,则执行步骤S204;否则,执行步骤S205;
步骤S204,向WebLogic服务器发送T3S协议数据,执行步骤S206;
步骤S205,退出漏洞检测流程;
步骤S206,确定WebLogic服务器的服务端口是否支持T3S协议,若支持,则执行步骤S207,否则执行步骤S205;
步骤S207,生成payload1并发送,以使WebLogic服务器在当前目录下创建远程指令文件保存目录;
步骤S208,生成payload2并发送,以使WebLogic服务器在创建的远程指令文件保存目录下保存jar包;
步骤S209,生成payload3并发送,以使WebLogic服务器执行jar包启动RMI服务;
步骤S210,连接WebLogic服务器的RMI服务;
步骤S211,确定是否能够连接WebLogic服务器的RMI服务,若能连接,则执行步骤S212;否则执行步骤S213;
步骤S212,确定WebLogic服务器的漏洞信息并记录,执行步骤S215;
步骤S213,确定WebLogic服务器中不存在T3S协议的反序列化漏洞,执行步骤S205;
步骤S214,生成payload4并发送,以使WebLogic服务器停止RMI服务;
步骤S215,生成payload5并发送,以使WebLogic服务器清空jar包,执行步骤S205。
本发明实施例提供另一种实施场景,来描述本申请实施例提供的另一种反序列化漏洞的检测方法,该方法应用在检测装置中,该检测方法的具体时序图针对T3S协议的反序列化漏洞进行检测,具体过程如图3所示。
本发明实施例还提供一种针对T3协议的反序列化漏洞检测方法,该方法与针对T3S协议的反序列化漏洞检测方法的过程相似,只是使用TCP协议与WebLogic服务器进行连接,并向WebLogic服务器发送的是T3协议,具体过程如图4所示。
同样的,针对T3协议的反序列化漏洞的检测的时序图如图5所示。
本发明实施例还提供一种实施场景描述本申请实施例提供的一种反序列化漏洞的检测方法,该方法应用在检测装置中,该检测方法适用于T3协议以及T3S协议的反序列化漏洞检测,具体过程如图6所示,包括:
步骤S601,接受检测漏洞任务;
步骤S602,使用安全套接层SSL协议连接WebLogic服务器端口;
步骤S603,确定是否能够连接WebLogic服务器端口,若能,则执行步骤S604;否则执行步骤S605;
步骤S604,向WebLogic服务器发送T3S协议,执行步骤S606;
步骤S605,使用TCP协议连接WebLogic服务器端口,执行步骤S607;
步骤S606,确定WebLogic服务器的端口是否支持T3S协议,若支持,则执行步骤S608;否则,执行步骤S609;
步骤S607,确定WebLogic服务器的端口是否支持T3协议,若支持,则执行步骤S610;否则执行步骤S609;
步骤S608,确定WebLogic服务器是否存在T3S协议的反序列化漏洞,若存在,则执行步骤S611;否则执行步骤S609;
步骤S609,退出漏洞检测任务;
步骤S611,记录WebLogic服务器的T3S协议的反序列化漏洞的漏洞信息,执行步骤S609;
步骤S612,记录WebLogic服务器的T3协议的反序列化漏洞的漏洞信息,执行步骤S609。
上述实施例只是已先确定WebLogic服务器的服务端口是否提供SSL服务进行阐述的,也可以首先确定WebLogic服务器的服务端口是否提供TCP服务。上述检测T3S协议的反序列化漏洞以及检测T3协议的反序列化漏洞的过程没有顺序的规定。
本发明实施例还提供一种实施场景描述本申请实施例提供的一种反序列化漏洞的检测方法,该方法应用在检测装置中,该检测方法适用于检测多个WebLogic服务器中是否存在T3协议以及T3S协议的反序列化漏洞,具体过程如图7所示,在图7中,一个检测装置可以检测多个WebLogic服务器中是否存在T3协议以及T3S协议的反序列化漏洞,当接收到检测漏洞任务后,首先将检测漏洞加入到待执行任务序列中,然后检测装置中的空闲线程会从待执行任务序列中获取检测漏洞任务,针对一个WebLogic服务器中是否存在T3协议以及T3S协议的反序列化漏洞进行检测,若存在漏洞,则返回检测到的漏洞信息,并且可以向用户进行漏洞展示。
基于相同的技术构思,本申请实施例提供了一种反序列化漏洞的检测装置,如图8所示,该装置800包括:
安全套接层SSL协议连接单元801,用于在获取到检测漏洞任务后,通过安全套接层SSL协议访问WebLogic服务器的服务端口;
T3S协议服务确定单元802,用于若确定成功访问WebLogic服务器的服务端口,则确定所述WebLogic服务器的服务端口是否支持T3S协议服务;
漏洞确定单元803,用于若确定所述WebLogic服务器的服务端口支持T3S协议服务,且与所述WebLogic服务器的远程方法调用RMI服务连接成功,则确定所述WebLogic服务器存在T3S协议的WebLogic Java反序列化漏洞。
进一步地,可选的,所述T3S协议服务确定单元802具体用于:
向所述WebLogic服务器发送T3S协议数据;
若确定接收到的所述WebLogic服务器针对所述T3S协议返回的反馈数据与T3S协议规定的反馈数据匹配,则确定所述WebLogic服务器的服务端口支持T3S协议服务。
可选的,所述装置还包括:
数据生成单元804,用于生成第一漏洞利用数据,并将所述第一漏洞利用数据发送给所述WebLogic服务器,所述第一漏洞利用数据用于指示所述WebLogic服务器在所述WebLogic服务器的当前目录下创建远程指令文件目录;
在确定所述WebLogic服务器在当前目录下已创建远程指令文件目录后,生成第二漏洞利用数据,所述第二漏洞利用数据中包括远程指令文件,所述远程指令文件用于启动RMI服务,并将所述第二漏洞利用数据发送给所述WebLogic服务器,所述第二漏洞利用数据用于指示所述WebLogic服务器在所述远程指令文件目录中保存所述远程指令文件;
在确定所述WebLogic服务器已在所述远程指令文件目录中保存所述远程指令文件后,生成第三漏洞利用数据,所述第三漏洞利用数据用于指示所述WebLogic服务器执行所述远程指令文件,启动所述WebLogic服务器的RMI服务。
可选的,所述漏洞确定单元803具体用于:
在获取所述WebLogic服务器的SSL证书后,则确定通过T3S协议与所述WebLogic服务器的RMI服务连接成功。
可选的,所述装置还包括T3协议漏洞检测单元805,所述T3协议漏洞检测单元805用于:
在通过传输控制协议TCP成功访问WebLogic服务器的服务端口后,确定所述WebLogic服务器的服务端口是否支持T3协议服务;
若确定所述WebLogic服务器的服务端口支持T3协议服务,且与所述WebLogic服务器的远程方法调用RMI服务连接成功,则确定所述WebLogic服务器存在T3协议的WebLogicJava反序列化漏洞。
可选的,所述装置还包括获取单元808,所述获取单元808用于:
将所述检测漏洞任务加入到待执行任务队列中,并使用线程池中的空闲线程从所述执行任务队列获取所述检测漏洞任务。
基于相同的技术构思,本申请实施例提供了一种计算机设备,如图9所示,包括至少一个处理器901,以及与至少一个处理器连接的存储器902,本申请实施例中不限定处理器901与存储器902之间的具体连接介质,图9中处理器901和存储器902之间通过总线连接为例。总线可以分为地址总线、数据总线、控制总线等。
在本申请实施例中,存储器902存储有可被至少一个处理器901执行的指令,至少一个处理器901通过执行存储器902存储的指令,可以执行前述的反序列化漏洞的检测方法中所包括的步骤。
其中,处理器901是计算机设备的控制中心,可以利用各种接口和线路连接终端设备的各个部分,通过运行或执行存储在存储器902内的指令以及调用存储在存储器902内的数据,从而获得客户端地址。可选的,处理器901可包括一个或多个处理单元,处理器901可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器901中。在一些实施例中,处理器901和存储器902可以在同一芯片上实现,在一些实施例中,它们也可以在独立的芯片上分别实现。
处理器901可以是通用处理器,例如中央处理器(CPU)、数字信号处理器、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器902作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器902可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(Random AccessMemory,RAM)、静态随机访问存储器(Static Random Access Memory,SRAM)、可编程只读存储器(Programmable Read Only Memory,PROM)、只读存储器(Read Only Memory,ROM)、带电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、磁性存储器、磁盘、光盘等等。存储器902是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本申请实施例中的存储器902还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
基于相同的技术构思,本申请实施例提供了一种计算机可读存储介质,其存储有可由计算机设备执行的计算机程序,当所述程序在计算机设备上运行时,使得所述计算机设备执行反序列化漏洞的检测方法的步骤。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本申请上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (10)

1.一种反序列化漏洞的检测方法,其特征在于,所述方法包括:
在获取到检测漏洞任务后,通过安全套接层SSL协议访问WebLogic服务器的服务端口;
若确定成功访问WebLogic服务器的服务端口,则向所述WebLogic服务器发送T3S协议数据;
若确定接收到的所述WebLogic服务器针对所述T3S协议返回的反馈数据与T3S协议规定的反馈数据匹配,则确定所述WebLogic服务器的服务端口支持T3S协议服务;
若确定所述WebLogic服务器的服务端口支持T3S协议服务,则生成第一漏洞利用数据,并将所述第一漏洞利用数据发送给所述WebLogic服务器,所述第一漏洞利用数据用于指示所述WebLogic服务器在所述WebLogic服务器的当前目录下创建远程指令文件目录;
生成第二漏洞利用数据,所述第二漏洞利用数据中包括远程指令文件,所述远程指令文件用于启动RMI服务,并将所述第二漏洞利用数据发送给所述WebLogic服务器,所述第二漏洞利用数据用于指示所述WebLogic服务器在所述远程指令文件目录中保存所述远程指令文件;
生成第三漏洞利用数据,所述第三漏洞利用数据用于指示所述WebLogic服务器执行所述远程指令文件,启动所述WebLogic服务器的RMI服务;
在获取所述WebLogic服务器的SSL证书后,取消对所述WebLogic服务器的SSL证书验证以及取消对SSL服务器的主机名验证的过程;
若与所述WebLogic服务器的远程方法调用RMI服务连接成功,则确定所述WebLogic服务器存在T3S协议的WebLogic Java反序列化漏洞。
2.根据权利要求1所述的方法,其特征在于,所述与所述WebLogic服务器的远程方法调用RMI服务连接成功,包括:
在获取所述WebLogic服务器的SSL证书后,若确定通过T3S协议与所述WebLogic服务器的RMI服务连接成功,则确定与所述WebLogic服务器的远程方法调用RMI服务连接成功。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在通过传输控制协议TCP成功访问WebLogic服务器的服务端口后,确定所述WebLogic服务器的服务端口是否支持T3协议服务;
若确定所述WebLogic服务器的服务端口支持T3协议服务,且与所述WebLogic服务器的远程方法调用RMI服务连接成功,则确定所述WebLogic服务器存在T3协议的WebLogic Java反序列化漏洞。
4.根据权利要求1所述的方法,其特征在于,获取检测漏洞任务,包括:
将所述检测漏洞任务加入到待执行任务队列中,并使用线程池中的空闲线程从所述执行任务队列获取所述检测漏洞任务。
5.一种反序列化漏洞检测装置,其特征在于,所述装置包括:
安全套接层SSL协议连接单元,用于在获取到检测漏洞任务后,通过安全套接层SSL协议访问WebLogic服务器的服务端口;
T3S协议服务确定单元,用于若确定成功访问WebLogic服务器的服务端口,则向所述WebLogic服务器发送T3S协议数据;
若确定接收到的所述WebLogic服务器针对所述T3S协议返回的反馈数据与T3S协议规定的反馈数据匹配,则确定所述WebLogic服务器的服务端口支持T3S协议服务
漏洞确定单元,用于若确定所述WebLogic服务器的服务端口支持T3S协议服务,则生成第一漏洞利用数据,并将所述第一漏洞利用数据发送给所述WebLogic服务器,所述第一漏洞利用数据用于指示所述WebLogic服务器在所述WebLogic服务器的当前目录下创建远程指令文件目录;
生成第二漏洞利用数据,所述第二漏洞利用数据中包括远程指令文件,所述远程指令文件用于启动RMI服务,并将所述第二漏洞利用数据发送给所述WebLogic服务器,所述第二漏洞利用数据用于指示所述WebLogic服务器在所述远程指令文件目录中保存所述远程指令文件;
生成第三漏洞利用数据,所述第三漏洞利用数据用于指示所述WebLogic服务器执行所述远程指令文件,启动所述WebLogic服务器的RMI服务;
在获取所述WebLogic服务器的SSL证书后,取消对所述WebLogic服务器的SSL证书验证以及取消对SSL服务器的主机名验证的过程;
若与所述WebLogic服务器的远程方法调用RMI服务连接成功,则确定所述WebLogic服务器存在T3S协议的WebLogic Java反序列化漏洞。
6.根据权利要求5所述的装置,其特征在于,所述漏洞确定单元具体用于:
在获取所述WebLogic服务器的SSL证书后,若确定通过T3S协议与所述WebLogic服务器的RMI服务连接成功,则确定与所述WebLogic服务器的远程方法调用RMI服务连接成功。
7.根据权利要求5所述的装置,其特征在于,所述装置还包括T3协议漏洞检测单元,所述T3协议漏洞检测单元用于:
在通过传输控制协议TCP成功访问WebLogic服务器的服务端口后,确定所述WebLogic服务器的服务端口是否支持T3协议服务;
若确定所述WebLogic服务器的服务端口支持T3协议服务,且与所述WebLogic服务器的远程方法调用RMI服务连接成功,则确定所述WebLogic服务器存在T3协议的WebLogic Java反序列化漏洞。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括获取单元,所述获取单元用于:
将所述检测漏洞任务加入到待执行任务队列中,并使用线程池中的空闲线程从所述执行任务队列获取所述检测漏洞任务。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至4任一项所述方法的步骤。
10.一种计算机可读存储介质,其特征在于,其存储有可由计算机设备执行的计算机程序,当所述程序在计算机设备上运行时,使得计算机执行如权利要求1至4中任一项所述的方法。
CN201910551537.XA 2019-06-24 2019-06-24 一种反序列化漏洞的检测方法及装置 Active CN110276202B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201910551537.XA CN110276202B (zh) 2019-06-24 2019-06-24 一种反序列化漏洞的检测方法及装置
PCT/CN2020/096901 WO2020259390A1 (zh) 2019-06-24 2020-06-18 一种反序列化漏洞的检测方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910551537.XA CN110276202B (zh) 2019-06-24 2019-06-24 一种反序列化漏洞的检测方法及装置

Publications (2)

Publication Number Publication Date
CN110276202A CN110276202A (zh) 2019-09-24
CN110276202B true CN110276202B (zh) 2023-10-03

Family

ID=67961702

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910551537.XA Active CN110276202B (zh) 2019-06-24 2019-06-24 一种反序列化漏洞的检测方法及装置

Country Status (2)

Country Link
CN (1) CN110276202B (zh)
WO (1) WO2020259390A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110276202B (zh) * 2019-06-24 2023-10-03 深圳前海微众银行股份有限公司 一种反序列化漏洞的检测方法及装置
CN115485685A (zh) * 2020-05-14 2022-12-16 深圳市欢太科技有限公司 应用程序安全检测方法、装置、存储介质及电子设备
CN111931184B (zh) * 2020-08-11 2023-06-30 中国工商银行股份有限公司 反序列化漏洞检测方法及装置
CN114070580B (zh) * 2021-09-30 2024-05-07 奇安信科技集团股份有限公司 反序列化攻击检测方法、装置、电子设备、介质及程序
CN115378709B (zh) * 2022-08-23 2024-07-19 南方电网科学研究院有限责任公司 基于weblogic的自动化渗透测试方法和装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106096417A (zh) * 2016-06-01 2016-11-09 国网重庆市电力公司电力科学研究院 一种Weblogic反序列化漏洞扫描检测方法及工具
CN109344622A (zh) * 2018-09-26 2019-02-15 杭州迪普科技股份有限公司 漏洞攻击的入侵检测方法及相关设备
CN109857669A (zh) * 2019-02-13 2019-06-07 杭州孝道科技有限公司 一种基于JavaAgent的JavaWEB应用程序漏洞检测方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9009313B2 (en) * 2004-07-12 2015-04-14 NetSuite Inc. Simultaneous maintenance of multiple versions of a web-based business information system
CN110276202B (zh) * 2019-06-24 2023-10-03 深圳前海微众银行股份有限公司 一种反序列化漏洞的检测方法及装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106096417A (zh) * 2016-06-01 2016-11-09 国网重庆市电力公司电力科学研究院 一种Weblogic反序列化漏洞扫描检测方法及工具
CN109344622A (zh) * 2018-09-26 2019-02-15 杭州迪普科技股份有限公司 漏洞攻击的入侵检测方法及相关设备
CN109857669A (zh) * 2019-02-13 2019-06-07 杭州孝道科技有限公司 一种基于JavaAgent的JavaWEB应用程序漏洞检测方法

Also Published As

Publication number Publication date
CN110276202A (zh) 2019-09-24
WO2020259390A1 (zh) 2020-12-30

Similar Documents

Publication Publication Date Title
CN110276202B (zh) 一种反序列化漏洞的检测方法及装置
US11310108B2 (en) Secure configuration of cloud computing nodes
US9774601B2 (en) Security of computer resources
EP1088427B1 (en) System and method for security of code
US20220083326A1 (en) Upgrading method and system, server, and terminal device
CN106487774A (zh) 一种云主机服务权限控制方法、装置和系统
CN110166459B (zh) 反序列化漏洞的防护方法、装置、设备及可读存储介质
US9749354B1 (en) Establishing and transferring connections
KR102134491B1 (ko) 보호된 데이터 세트의 네트워크 기반 관리 기법
CN101877710A (zh) 代理网关防病毒实现方法、预分类器和代理网关
US20220038495A1 (en) Security mechanisms for preventing retry or replay attacks
CN103778352B (zh) 电子证据生成、验证方法及其装置与系统
Suriadi et al. Validating denial of service vulnerabilities in web services
US20170093888A1 (en) Autonomic exclusion in a tiered delivery network
US20170339185A1 (en) Masquerading and monitoring of shared resources in computer networks
RU2738337C1 (ru) Система и способ обнаружения интеллектуальных ботов и защиты от них
CN108289074A (zh) 用户账号登录方法及装置
CN105518693B (zh) 一种安全防护方法,及装置
CN111431957B (zh) 文件处理方法、装置、设备和系统
CN114938288A (zh) 一种数据访问方法、装置、设备以及存储介质
US11557016B2 (en) Tracking image senders on client devices
US11227032B1 (en) Dynamic posture assessment to mitigate reverse engineering
CN105933298A (zh) 用于执行传输控制协议握手的设备和方法
CN106648770B (zh) 一种应用程序安装包的生成方法、加载方法及装置
US20140281492A1 (en) Prevention of Forgery of Web Requests to a Server

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant