WO2020259390A1 - 一种反序列化漏洞的检测方法及装置 - Google Patents
一种反序列化漏洞的检测方法及装置 Download PDFInfo
- Publication number
- WO2020259390A1 WO2020259390A1 PCT/CN2020/096901 CN2020096901W WO2020259390A1 WO 2020259390 A1 WO2020259390 A1 WO 2020259390A1 CN 2020096901 W CN2020096901 W CN 2020096901W WO 2020259390 A1 WO2020259390 A1 WO 2020259390A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- weblogic server
- protocol
- service
- weblogic
- server
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/577—Assessing vulnerabilities and evaluating computer system security
Definitions
- WebLogic an application server software
- Java EE a Java enterprise application
- Java EE a Java enterprise application
- WebLogic is a middleware based on Java EE (a Java enterprise application) architecture, which can be used to develop, integrate, deploy and manage large-scale distributed Web (World Wide Web, global wide area network) applications, network Java application server for applications and database applications. It is widely used in government, finance, medical treatment, transportation, education, scientific research and other industries and fields.
- WebLogic has Java deserialization vulnerabilities
- the WebLogic server will perform operations specified by the attacker, so the attacker can Control the server, steal data in the database, causing serious impact.
- This application provides a method and device for detecting deserialization vulnerabilities to solve the problem that there is no detecting method for deserialization vulnerabilities of the T3S protocol in the prior art.
- the service port of the WebLogic server After obtaining the task of detecting the vulnerability, it starts to detect the deserialization vulnerability of the T3S protocol.
- the service port of the WebLogic server First, it is determined whether the service port of the WebLogic server can be accessed, that is, whether it can pass through the Secure Sockets Layer SSL (Secure Sockets Layer). ) Protocol to access the service port of the WebLogic server, and after confirming that it can be accessed, determine whether the service port of the WebLogic server supports the T3S protocol service. If it supports the T3S protocol service, try to call the RMI service connection with the remote method of the WebLogic server, If the connection is successful, it can be determined that the WebLogic server has a WebLogic Java deserialization vulnerability of the T3S protocol.
- SSL Secure Sockets Layer
- the deserialization vulnerability detection for the T3S protocol can be realized, and it is performed on the premise that the service port of the WebLogic server can be accessed and the T3S protocol service is determined, which avoids useless detection steps and improves the detection efficiency .
- the determining that the service port of the WebLogic server supports T3S protocol service includes:
- the second exploit data includes a remote instruction file
- the remote instruction file is used to start the RMI service, and send the second exploit data to the WebLogic server, the first
- the second vulnerability exploitation data is used to instruct the WebLogic server to save the remote command file in the remote command file directory.
- the successful connection of the remote method invocation RMI service with the WebLogic server includes:
- the method further includes:
- the WebLogic server If it is determined that the service port of the WebLogic server supports the T3 protocol service, and the remote method invocation RMI service connection with the WebLogic server is successful, it is determined that the WebLogic server has a WebLogic Java deserialization vulnerability of the T3 protocol.
- the task of obtaining and detecting vulnerabilities includes:
- the vulnerability detection task is added to the task queue to be executed, and the idle thread in the thread pool is used to obtain the vulnerability detection task from the execution task queue.
- an embodiment of the present invention provides a deserialization vulnerability detection device, including:
- the T3S protocol service determining unit is configured to determine whether the service port of the WebLogic server supports the T3S protocol service if it is determined that the service port of the WebLogic server is successfully accessed.
- the vulnerability determination unit is configured to determine that the WebLogic server has a WebLogic Java deserialization of the T3S protocol if it is determined that the service port of the WebLogic server supports the T3S protocol service and the remote method invocation RMI service connection with the WebLogic server is successful. Loopholes.
- the T3S protocol service determining unit is specifically configured to:
- the device further includes:
- the data generating unit is configured to generate first exploit data and send the first exploit data to the WebLogic server, where the first exploit data is used to instruct the WebLogic server in the current status of the WebLogic server Create a remote command file directory under the directory.
- the device further includes a T3 protocol vulnerability detection unit, and the T3 protocol vulnerability detection unit is configured to:
- the device further includes an obtaining unit, and the obtaining unit is configured to:
- the present invention provides a computer-readable storage medium that stores a computer program that can be executed by a computer device, and when the program runs on a computer device, the computer device executes deserialization vulnerability detection method.
- the detection of the deserialization vulnerability of the T3S protocol is started. First, it is determined whether the service port of the WebLogic server can be accessed, that is, whether the WebLogic can be accessed through the secure socket layer SSL protocol. The service port of the server, and after it is determined that it can be accessed, it is further determined whether the service port of the WebLogic server supports the T3S protocol service. If it supports the T3S protocol service, it further attempts to connect to the WebLogic server’s remote method call RMI service. If the connection is successful, it can be determined that the WebLogic server has a WebLogic Java deserialization vulnerability of the T3S protocol.
- FIG. 1 is a schematic flowchart of a method for detecting deserialization vulnerabilities according to an embodiment of the present invention
- FIG. 2 is a schematic flowchart of a deserialization vulnerability detection method for T3S protocol provided by an embodiment of the present invention
- FIG. 3 is a schematic diagram of a sequence flow chart of a deserialization vulnerability detection method for the T3S protocol according to an embodiment of the present invention
- FIG. 4 is a schematic flowchart of a deserialization vulnerability detection method for T3 protocol provided by an embodiment of the present invention
- FIG. 5 is a schematic diagram of a sequence flow chart of a deserialization vulnerability detection method for T3 protocol provided by an embodiment of the present invention
- FIG. 6 is a schematic flowchart of a deserialization vulnerability detection method for T3 protocol and T3S protocol provided by an embodiment of the present invention
- FIG. 7 is a schematic flowchart of a method for detecting parallel deserialization vulnerabilities according to an embodiment of the present invention.
- FIG. 8 is a schematic structural diagram of a deserialization vulnerability detection device provided by an embodiment of the present invention.
- FIG. 9 is a schematic structural diagram of a computer device provided by an embodiment of the present invention.
- Serialization and deserialization the process of serialization is to turn an object into data that can be transmitted, and the process of deserialization is the process of turning serialized data back into an object.
- T3 is an optimized protocol used to transfer data between WebLogic Server and other Java programs (including clients and other WebLogic Servers). WebLogic Server will track each Java Virtual Machine (JVM) connected to it and create a single T3 connection to carry all the traffic of each JVM.
- JVM Java Virtual Machine
- T3S is the WebLogic T3 protocol on SSL (Secure Sockets Layer).
- FIG. 1 is the flow of a deserialization vulnerability detection method provided by an embodiment of the application Schematic diagram, the method includes the following steps:
- Step S101 After obtaining the vulnerability detection task, access the service port of the WebLogic server through the secure socket layer SSL protocol.
- the service port of the WebLogic server can be accessed through the secure socket layer SSL protocol to determine whether the server port can provide services.
- data is sent to the WebLogic server through the Secure Socket Layer SSL protocol. If the successful connection message returned by the WebLogic server can be received, it is determined that the service port of the WebLogic server is successfully accessed, and the server port can be Provide services; otherwise, it is considered that the service port of the WebLogic server does not support access, that is, the service cannot be provided.
- Step S102 If it is determined that the service port of the WebLogic server is successfully accessed, it is determined whether the service port of the WebLogic server supports the T3S protocol service.
- the received feedback data needs to match the feedback data specified by the T3S protocol. If it matches, the service port of the WebLogic server is considered to support the T3S protocol service.
- WebLogic version 10.0.2 when WebLogic version 10.0.2 is used as a server, that is, as a server for T3S vulnerability detection, after receiving the T3S protocol, the returned information is "HELO:10.0.2.0.false ⁇ nAS:2048 ⁇ nHL:19 ⁇ n ⁇ n", that is to say, after connecting to the server port, the returned data satisfies the beginning of "HELO:”, and the subsequent content of the same line is WebLogic version number information, then the server port can be determined Provides the T3S protocol service of WebLogic. Furthermore, it can be considered that the service port of the WebLogic server supports the T3S protocol service.
- Step S103 If it is determined that the service port of the WebLogic server supports the T3S protocol service, and the remote method invocation RMI service connection with the WebLogic server is successful, it is determined that the WebLogic server has a WebLogic Java deserialization vulnerability of the T3S protocol.
- the detection of deserialization vulnerabilities in the T3 protocol in the prior art is an attempt to use Java deserialization vulnerabilities to start a new RMI (Remote Method Invocation, remote method) in the WebLogic service during vulnerability detection. Method call) service.
- RMI Remote Method Invocation, remote method
- the scanner After the scanner successfully connects to the RMI service, it determines that there is a vulnerability when the remote command is successfully executed. In fact, when the RMI service is connected, it can be determined that there is a vulnerability. Therefore, in the embodiment of the present invention, after determining that the service port of the WebLogic server supports the T3S protocol service, you can try to connect to the WebLogic server's remote method invoking the RMI service. If the connection is successful, you can determine that the WebLogic server has the WebLogic Java of the T3S protocol. Deserialization vulnerability.
- step S101 in order to perform vulnerability detection of multiple WebLogic servers, after obtaining the vulnerability detection task, the vulnerability detection task can be added to the task sequence to be executed, and the idle thread in the thread pool can be called. After obtaining the vulnerability detection task from the task sequence to be executed, the vulnerability detection is started.
- the transmitted payload data includes three parts, the first part is the hexadecimal form of the total length of the data, and the length is four bytes.
- the second part can use fixed data, which can be used directly by capturing packets when sending WebLogic T3 protocol data.
- the second part of the fixed data contains visible characters and invisible characters, including WebLogic version information.
- the third part of the payload is Java serialized data, where the Java serialized data starts with "ac ed 00 05", where 0xaced is the magic number of Java serialized data, and 0x0005 is the Java serialized version.
- the SSL certificate of the WebLogic server will be verified under normal circumstances.
- the SSL certificate of the WebLogic server may not be in the trusted certificate list of the detection device, it will cause the handshake failure during the SSL connection, and then the WebLogic RMI service cannot be connected, and the vulnerability detection cannot be performed. Therefore, the implementation of the present invention
- the detection device will perform a host name verification check. Specifically, the detection device compares the CN field in the digital certificate received from the WebLogic server with the WebLogic server name in the URL used by the client to connect to the WebLogic server. Furthermore, the CN field and the WebLogic server name must match to pass the host name verification check, which is used to prevent man-in-the-middle attacks.
- the detection device when the detection device is performing vulnerability detection, it is likely that the CN field in the SSL certificate does not match the server name of the WebLogic server URL.
- the WebLogic server is connected through Internet Protocol IP instead of domain name. In this case, the detection device will terminate The SSL connection operation prevents vulnerability detection. Therefore, in the embodiment of the present invention, the verification of the host name of the SSL server can be cancelled.
- the process of detecting vulnerabilities can be realized by sending 5 payload data to the WebLogic server.
- the vulnerability information when it is determined that the WebLogic server has a deserialization vulnerability of the T3 or T3S protocol, the vulnerability information needs to be recorded.
- the recorded vulnerability information includes at least the WebLogic server IP , IP corresponding area, WebLogic port information, WebLogic version information, WebLogic domain path, operating system name, operating system host name, operating system user, Web service protocol (such as HTTP, HTTPS), website title, website URL, certificate information ( Including domain name, organization information, etc.).
- the deserialization vulnerability detection for the T3S protocol can be realized by the method in the above embodiment, and it is first determined whether the connected WebLogic server service port provides T3/T3S protocol service, if the connected port is not Provide T3/T3S protocol service, there will be no Java deserialization vulnerabilities, and no deserialization vulnerability detection, so you can skip ports that do not need to be detected to improve detection efficiency.
- the payload used can support multiple operating systems, not limited to Windows and Linux, but also supports AIX, SunOS, HP-UX, etc. The system has better compatibility.
- the operating system of the target machine does not need to be set in advance during detection, and the detection can be supported for different operating systems to improve the detection efficiency; and it is trying to use the vulnerability to start the RMI service in the WebLogic service.
- the detection device is connected to the RMI
- the detection steps are simplified, and the detection effect will not be affected, which can improve the efficiency of loophole detection.
- the detection method in the embodiment of the present invention can also support parallel vulnerability detection of different servers, thereby improving detection efficiency.
- Step S202 Send the secure socket layer SSL protocol to the WebLogic server.
- Step S204 Send the T3S protocol data to the WebLogic server, and perform step S206.
- Step S205 exit the vulnerability detection process.
- Step S206 It is determined whether the service port of the WebLogic server supports the T3S protocol, if it does, step S207 is executed, otherwise, step S205 is executed.
- Step S208 Generate payload2 and send it, so that the WebLogic server saves the jar package in the created remote command file storage directory.
- Step S210 Connect to the RMI service of the WebLogic server.
- step S211 it is determined whether the RMI service of the WebLogic server can be connected. If the connection is possible, step S212 is executed; otherwise, step S213 is executed.
- Step S212 Determine and record the vulnerability information of the WebLogic server, and execute step S215.
- Step S213 It is determined that there is no deserialization vulnerability of the T3S protocol in the WebLogic server, and step S205 is executed.
- step S214 payload4 is generated and sent, so that the WebLogic server stops the RMI service.
- Step S215 Generate payload5 and send it so that the WebLogic server empties the jar package, and step S205 is executed.
- the embodiment of the present invention provides another implementation scenario to describe another method for detecting deserialization vulnerabilities provided in the embodiment of the present application.
- the method is applied in a detection device.
- the specific timing diagram of the detection method is for the reverse of the T3S protocol.
- the serialization vulnerability is detected, and the specific process is shown in Figure 3.
- the embodiment of the present invention also provides a sequence diagram for the detection of the deserialization vulnerability of the T3 protocol, as shown in FIG. 5.
- the embodiment of the present invention also provides a description of the implementation scenario.
- the embodiment of the present application provides a method for detecting deserialization vulnerabilities.
- the method is applied in a detection device.
- the detection method is suitable for the deserialization vulnerabilities of the T3 protocol and the T3S protocol.
- the specific process of detection is shown in Figure 6, including:
- step S603 it is determined whether the port of the WebLogic server can be connected, if so, step S604 is executed; otherwise, step S605 is executed.
- Step S604 Send the T3S protocol to the WebLogic server, and perform step S606.
- step S606 it is determined whether the port of the WebLogic server supports the T3S protocol, if it supports, step S608 is executed; otherwise, step S609 is executed.
- step S607 it is determined whether the port of the WebLogic server supports the T3 protocol, if it supports, step S610 is executed; otherwise, step S609 is executed.
- step S608 it is determined whether the WebLogic server has a deserialization loophole of the T3S protocol, if it exists, step S611 is executed; otherwise, step S609 is executed.
- Step S609 exit the vulnerability detection task.
- Step S611 record the vulnerability information of the deserialization vulnerability of the T3S protocol of the WebLogic server, and execute step S609.
- Step S612 record the vulnerability information of the deserialization vulnerability of the T3 protocol of the WebLogic server, and execute step S609.
- the foregoing embodiment is only described by first determining whether the service port of the WebLogic server provides the SSL service. It may also be determined first whether the service port of the WebLogic server provides the transmission control protocol TCP service.
- the above-mentioned process of detecting the deserialization vulnerability of the T3S protocol and detecting the deserialization vulnerability of the T3 protocol does not have a sequence regulation.
- the embodiment of the present invention also provides an implementation scenario to describe a method for detecting deserialization vulnerabilities provided by the embodiment of the present application.
- the method is applied in a detection device, and the detection method is suitable for detecting whether multiple WebLogic servers are There are loopholes in the deserialization of the T3 protocol and the T3S protocol.
- the specific process is shown in Figure 7.
- a detection device can detect whether there are T3 protocol and T3S protocol deserialization vulnerabilities in multiple WebLogic servers.
- the detection vulnerability task After receiving the detection vulnerability task, first add the detection vulnerability to the task sequence to be executed, and then detect The idle thread in the device will obtain the task of detecting vulnerabilities from the task sequence to be executed, and further, detect whether there is a T3 protocol and the deserialization vulnerabilities of the T3S protocol in a WebLogic server, and if there are vulnerabilities, return the detected vulnerabilities Information, and can display vulnerability information to users.
- the device 800 includes:
- the secure socket layer SSL protocol connection unit 801 is used to access the service port of the WebLogic server through the secure socket layer SSL protocol after obtaining the vulnerability detection task.
- the T3S protocol service determining unit 802 is configured to further determine whether the service port of the WebLogic server supports the T3S protocol service when it is determined that the service port of the WebLogic server is successfully accessed.
- the second exploit data After determining that the WebLogic server has created a remote command file directory in the current directory, generate second exploit data, the second exploit data includes a remote command file, the remote command file is used to start the RMI service, and The second exploit data is sent to the WebLogic server, where the second exploit data is used to instruct the WebLogic server to save the remote command file in the remote command file directory.
- the vulnerability determining unit 803 is specifically configured to:
- the device further includes a T3 protocol vulnerability detection unit 805, and the T3 protocol vulnerability detection unit 805 is configured to:
- the WebLogic server If it is determined that the service port of the WebLogic server supports the T3 protocol service, and the remote method invocation RMI service connection with the WebLogic server is successful, it is determined that the WebLogic server has a WebLogic Java deserialization vulnerability of the T3 protocol.
- the vulnerability detection task is added to the task queue to be executed, and the idle thread in the thread pool is used to obtain the vulnerability detection task from the execution task queue.
- an embodiment of the present application provides a computer device. As shown in FIG. 9, it includes at least one processor 901 and a memory 902 connected to the at least one processor.
- the embodiment of the present application does not limit the processor.
- the specific connection medium between the 901 and the memory 902, the connection between the processor 901 and the memory 902 in FIG. 9 is taken as an example.
- the bus can be divided into address bus, data bus, control bus, etc.
- the memory 902 stores instructions that can be executed by at least one processor 901. By executing the instructions stored in the memory 902, the at least one processor 901 can execute the aforementioned deserialization vulnerability detection method. Various steps.
- the processor 901 may be a general-purpose processor, such as a central processing unit (CPU), a digital signal processor, an application specific integrated circuit (ASIC), a field programmable gate array or other programmable logic devices, discrete gates or transistors Logic devices and discrete hardware components can implement or execute the methods, steps, and logic block diagrams disclosed in the embodiments of the present application.
- the general-purpose processor may be a microprocessor or any conventional processor. The steps of the method disclosed in the embodiments of the present application may be directly embodied as being executed and completed by a hardware processor, or executed and completed by a combination of hardware and software modules in the processor.
- the memory 902 as a non-volatile computer-readable storage medium, can be used to store non-volatile software programs, non-volatile computer-executable programs, and modules.
- the memory 902 may include at least one type of storage medium, such as flash memory, hard disk, multimedia card, card-type memory, random access memory (Random Access Memory, RAM), static random access memory (Static Random Access Memory, SRAM), Programmable Read Only Memory (PROM), Read Only Memory (ROM), Electrically Erasable Programmable Read-Only Memory (EEPROM), magnetic memory, disk , CD, etc.
- the memory 902 is any other medium that can be used to carry or store desired program codes in the form of instructions or data structures and that can be accessed by a computer, but is not limited thereto.
- the memory 902 in the embodiment of the present application may also be a circuit or any other device capable of realizing a storage function, for storing program instructions and/or data.
- a person of ordinary skill in the art can understand that all or part of the steps in the above method embodiments can be implemented by a program instructing relevant hardware.
- the foregoing program can be stored in a computer readable storage medium. When the program is executed, it is executed. Including the steps of the foregoing method embodiment; and the foregoing storage medium includes: removable storage devices, read-only memory (ROM, Read-Only Memory), random access memory (RAM, Random Access Memory), magnetic disks or optical disks, etc.
- ROM read-only memory
- RAM Random Access Memory
- magnetic disks or optical disks etc.
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
一种反序列化漏洞的检测方法及装置,涉及金融科技领域,用以解决现有技术中无法针对T3S协议进行反序列化漏洞检测的问题。其中,方法包括:在获取到检测漏洞任务后,通过安全套接层SSL协议访问WebLogic服务器的服务端口(S101);若确定成功访问WebLogic服务器的服务端口,则确定WebLogic服务器的服务端口是否支持T3S协议服务(S102);若确定WebLogic服务器的服务端口支持T3S协议服务,且与WebLogic服务器的远程方法调用RMI服务连接成功,则确定WebLogic服务器存在T3S协议的WebLogic Java反序列化漏洞(S103)。通过该方法能够实现针对T3S协议的反序列化漏洞检测,并能够在确定服务端口能够访问且服务端口支持T3S协议服务的前提下进行的,提高漏洞检测的效率。
Description
相关申请的交叉引用
本申请要求在2019年06月24日提交中国专利局、申请号为201910551537.X、申请名称为“一种反序列化漏洞的检测方法及装置”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
本发明涉及金融科技(Fintech)技术领域,尤其涉及一种反序列化漏洞的检测方法及装置。
WebLogic(一种应用服务器软件)是基于Java EE(一种Java企业应用)架构的中间件,可作为用于开发、集成、部署和管理大型分布式Web(World Wide Web,全球广域网)应用、网络应用和数据库应用的Java应用服务器。广泛用于政府、金融、医疗、交通、教育、科研等行业及领域。
当WebLogic使用T3S协议用于服务管理时,提供的Web服务的协议为HTTPS;使用T3协议用于服务管理时,提供的Web服务的协议为HTTP。因此使用T3S协议的WebLogic所提供的服务安全性要求更高,说明此类WebLogic服务中支持的业务功能更重要。一般来说,在政府、金融、医疗、交通、教育、科研等领域中,比如在基金、证券、保险、医院、交通局、教育主管部门、高校、研究所等行业或部门中,其部署的WebLogic大多提供HTTPS服务,使用T3S协议进行服务管理。
但是由于WebLogic存在Java反序列化漏洞,所以当攻击者向WebLogic服务器发送精心构造的反序列化数据时,可能会触发漏洞,进一步地,WebLogic服务器会执行攻击者指定的操作,那么攻击者就可以控制该服务器,窃取数据库中的数据,造成严重影响。
现有技术中,只有针对T3协议的反序列化漏洞的检测方法,并没有针对T3S协议的反序列化漏洞的检测方法,所以亟需一种针对T3S协议的反序列化漏洞的检测方法。
发明内容
本申请提供一种反序列化漏洞的检测方法及装置,用以解决现有技术中没有针对T3S协议的反序列化漏洞的检测方法的问题。
第一方面,本发明实施例提供一种反序列化漏洞的检测方法,包括:在获取到检测漏洞任务后,通过安全套接层SSL协议访问WebLogic服务器的服务端口;若确定成功访问WebLogic服务器的服务端口,则确定所述WebLogic服务器的服务端口是否支持T3S协议服务;若确定所述WebLogic服务器的服务端口支持T3S协议服务,且与所述WebLogic服务器的远程方法调用RMI服务连接成功,则确定所述WebLogic服务器存在T3S协议的Java反序列化漏洞。
本发明实施例中,在获取到检测漏洞任务后,开始进行针对T3S协议的反序列化漏洞进行检测,首先确定WebLogic服务器的服务端口是否能够访问,即是否能够通过安全套接层SSL(Secure Sockets Layer)协议访问WebLogic服务器的服务端口,并在确定能够进 行访问后,则确定该WebLogic服务器的服务端口是否支持T3S协议服务,若支持T3S协议服务,则尝试与WebLogic服务器的远程方法调用RMI服务连接,若连接成功,则可以确定WebLogic服务器存在T3S协议的WebLogic Java反序列化漏洞。通过上述方法能够实现针对T3S协议的反序列化漏洞检测,并且是在确定出WebLogic服务器的服务端口能够访问且并支持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协议的WebLogic Java反序列化漏洞。
可选的,所述获取检测漏洞任务,包括:
将所述检测漏洞任务加入到待执行任务队列中,并使用线程池中的空闲线程从所述执行任务队列获取所述检测漏洞任务。
第二方面,本发明实施例提供一种反序列化漏洞的检测装置,包括:
安全套接层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协议的WebLogic Java反序列化漏洞。
可选的,所述装置还包括获取单元,所述获取单元用于:
将所述检测漏洞任务加入到待执行任务队列中,并使用线程池中的空闲线程从所述执行任务队列获取所述检测漏洞任务。
第三方面,本发明提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现反序列化漏洞的检测方法。
第四方面,本发明提供了一种计算机可读存储介质,其存储有可由计算机设备执行的计算机程序,当所述程序在计算机设备上运行时,使得所述计算机设备执行反序列化漏洞的检测方法。
在本发明实施例中,在获取到检测漏洞任务后,开始进行针对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应用程序)标准的安全性引入大型网络应用的开发、集成、部署和管理之中。
序列化与反序列化,序列化的过程就是把一个对象变成可以传输的数据,而反序列化的过程就是把序列化数据再变回对象的过程。
反序列化漏洞,如果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协议连接信息为“t3S 9.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(Remote Method Invocation,远程方法调用)服务,扫描程序在连接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协议的WebLogic Java反序列化漏洞。
可选的,所述装置还包括获取单元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 Access Memory,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 (14)
- 一种反序列化漏洞的检测方法,其特征在于,所述方法包括:在获取到检测漏洞任务后,通过安全套接层SSL协议访问WebLogic服务器的服务端口;若确定成功访问所述WebLogic服务器的服务端口,则确定所述WebLogic服务器的服务端口是否支持T3S协议服务;若确定所述WebLogic服务器的服务端口支持T3S协议服务,且与所述WebLogic服务器的远程方法调用RMI服务连接成功,则确定所述WebLogic服务器存在T3S协议的WebLogic Java反序列化漏洞。
- 根据权利要求1所述的方法,其特征在于,所述确定所述WebLogic服务器的服务端口支持T3S协议服务,包括:向所述WebLogic服务器发送T3S协议数据;若确定接收到的所述WebLogic服务器针对所述T3S协议返回的反馈数据与T3S协议规定的反馈数据匹配,则确定所述WebLogic服务器的服务端口支持T3S协议服务。
- 根据权利要求1所述的方法,其特征在于,所述确定所述WebLogic服务器的服务端口支持T3S协议服务后,与所述WebLogic服务器的远程方法调用RMI服务连接成功前,还包括:生成第一漏洞利用数据,并将所述第一漏洞利用数据发送给所述WebLogic服务器,所述第一漏洞利用数据用于指示所述WebLogic服务器在所述WebLogic服务器的当前目录下创建远程指令文件目录;生成第二漏洞利用数据,所述第二漏洞利用数据中包括远程指令文件,所述远程指令文件用于启动RMI服务,并将所述第二漏洞利用数据发送给所述WebLogic服务器,所述第二漏洞利用数据用于指示所述WebLogic服务器在所述远程指令文件目录中保存所述远程指令文件;生成第三漏洞利用数据,所述第三漏洞利用数据用于指示所述WebLogic服务器执行所述远程指令文件,启动所述WebLogic服务器的RMI服务。
- 根据权利要求1~3中任意一项所述的方法,其特征在于,所述与所述WebLogic服务器的远程方法调用RMI服务连接成功,包括:在获取所述WebLogic服务器的SSL证书后,若确定通过T3S协议与所述WebLogic服务器的RMI服务连接成功,则确定与所述WebLogic服务器的远程方法调用RMI服务连接成功。
- 根据权利要求1所述的方法,其特征在于,所述方法还包括:在通过传输控制协议TCP成功访问WebLogic服务器的服务端口后,确定所述WebLogic服务器的服务端口是否支持T3协议服务;若确定所述WebLogic服务器的服务端口支持T3协议服务,且与所述WebLogic服务器的远程方法调用RMI服务连接成功,则确定所述WebLogic服务器存在T3协议的WebLogic Java反序列化漏洞。
- 根据权利要求1所述的方法,其特征在于,所述获取检测漏洞任务,包括:将所述检测漏洞任务加入到待执行任务队列中,并使用线程池中的空闲线程从所述执行任务队列获取所述检测漏洞任务。
- 一种反序列化漏洞检测装置,其特征在于,所述装置包括:安全套接层SSL协议连接单元,用于在获取到检测漏洞任务后,通过安全套接层SSL协议访问WebLogic服务器的服务端口;T3S协议服务确定单元,用于若确定成功访问所述WebLogic服务器的服务端口,则确定所述WebLogic服务器的服务端口是否支持T3S协议服务;漏洞确定单元,用于若确定所述WebLogic服务器的服务端口支持T3S协议服务,且与所述WebLogic服务器的远程方法调用RMI服务连接成功,则确定所述WebLogic服务器存在T3S协议的WebLogic Java反序列化漏洞。
- 根据权利要求7所述的装置,其特征在于,所述T3S协议服务确定单元具体用于:向所述WebLogic服务器发送T3S协议数据;若确定接收到的所述WebLogic服务器针对所述T3S协议返回的反馈数据与T3S协议规定的反馈数据匹配,则确定所述WebLogic服务器的服务端口支持T3S协议服务。
- 根据权利要求7所述的装置,其特征在于,所述装置还包括:数据生成单元,用于生成第一漏洞利用数据,并将所述第一漏洞利用数据发送给所述WebLogic服务器,所述第一漏洞利用数据用于指示所述WebLogic服务器在所述WebLogic服务器的当前目录下创建远程指令文件目录;生成第二漏洞利用数据,所述第二漏洞利用数据中包括远程指令文件,所述远程指令文件用于启动RMI服务,并将所述第二漏洞利用数据发送给所述WebLogic服务器,所述第二漏洞利用数据用于指示所述WebLogic服务器在所述远程指令文件目录中保存所述远程指令文件;生成第三漏洞利用数据,所述第三漏洞利用数据用于指示所述WebLogic服务器执行所述远程指令文件,启动所述WebLogic服务器的RMI服务。
- 根据权利要求7~9中任意一项所述的装置,其特征在于,所述漏洞确定单元具体用于:在获取所述WebLogic服务器的SSL证书后,若确定通过T3S协议与所述WebLogic服务器的RMI服务连接成功,则确定与所述WebLogic服务器的远程方法调用RMI服务连接成功。
- 根据权利要求7所述的装置,其特征在于,所述装置还包括T3协议漏洞检测单元,所述T3协议漏洞检测单元用于:在通过传输控制协议TCP成功访问WebLogic服务器的服务端口后,确定所述WebLogic服务器的服务端口是否支持T3协议服务;若确定所述WebLogic服务器的服务端口支持T3协议服务,且与所述WebLogic服务器的远程方法调用RMI服务连接成功,则确定所述WebLogic服务器存在T3协议的WebLogic Java反序列化漏洞。
- 根据权利要求11所述的装置,其特征在于,所述装置还包括获取单元,所述获取单元用于:将所述检测漏洞任务加入到待执行任务队列中,并使用线程池中的空闲线程从所述执 行任务队列获取所述检测漏洞任务。
- 一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6任一项所述方法的步骤。
- 一种计算机可读存储介质,其特征在于,其存储有可由计算机设备执行的计算机程序,当所述程序在计算机设备上运行时,使得计算机执行如权利要求1至6中任一项所述的方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910551537.XA CN110276202B (zh) | 2019-06-24 | 2019-06-24 | 一种反序列化漏洞的检测方法及装置 |
CN201910551537.X | 2019-06-24 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2020259390A1 true WO2020259390A1 (zh) | 2020-12-30 |
Family
ID=67961702
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2020/096901 WO2020259390A1 (zh) | 2019-06-24 | 2020-06-18 | 一种反序列化漏洞的检测方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN110276202B (zh) |
WO (1) | WO2020259390A1 (zh) |
Families Citing this family (5)
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 (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140067780A1 (en) * | 2004-07-12 | 2014-03-06 | NetSuite Inc. | Simultaneous maintenance of multiple versions of a web-based business information system |
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应用程序漏洞检测方法 |
CN110276202A (zh) * | 2019-06-24 | 2019-09-24 | 深圳前海微众银行股份有限公司 | 一种反序列化漏洞的检测方法及装置 |
-
2019
- 2019-06-24 CN CN201910551537.XA patent/CN110276202B/zh active Active
-
2020
- 2020-06-18 WO PCT/CN2020/096901 patent/WO2020259390A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140067780A1 (en) * | 2004-07-12 | 2014-03-06 | NetSuite Inc. | Simultaneous maintenance of multiple versions of a web-based business information system |
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应用程序漏洞检测方法 |
CN110276202A (zh) * | 2019-06-24 | 2019-09-24 | 深圳前海微众银行股份有限公司 | 一种反序列化漏洞的检测方法及装置 |
Non-Patent Citations (1)
Title |
---|
IT INDEX. NET: "Non-official translation: How to Enable HTTPS Service on WebLogic Server", HTTPS://ITINDEX2.RSSING.COM/CHAN-27974975/ALL_P224.HTML,, 16 March 2016 (2016-03-16) * |
Also Published As
Publication number | Publication date |
---|---|
CN110276202B (zh) | 2023-10-03 |
CN110276202A (zh) | 2019-09-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2020259390A1 (zh) | 一种反序列化漏洞的检测方法及装置 | |
US20220107846A1 (en) | SECURE SERVICE ISOLATION BETWEEN INSTANCES OF CLOUD PRODUCTS USING A SaaS MODEL | |
JP4907603B2 (ja) | アクセス制御システムおよびアクセス制御方法 | |
US10007515B2 (en) | System and method for automatic porting of software applications into a cloud computing environment | |
CN110166459B (zh) | 反序列化漏洞的防护方法、装置、设备及可读存储介质 | |
US7461144B1 (en) | Virtual private server with enhanced security | |
US8825854B2 (en) | DMZ framework | |
US8060932B2 (en) | Modular enterprise authorization solution | |
Backes et al. | Scippa: System-centric ipc provenance on android | |
US10331599B2 (en) | Employing session level restrictions to limit access to a redirected interface of a composite device | |
US20060259980A1 (en) | Method and system for limiting rights of services | |
US7711783B1 (en) | Generic event notification service for resource-constrained devices | |
US20100186089A1 (en) | Method and system for protecting cross-domain interaction of a web application on an unmodified browser | |
US20130219462A1 (en) | Generating a distrubition package having an access control execution program for implementing an access control mechanism and loading unit for a client | |
MXPA04011271A (es) | Interfase de programacion relacionada con la seguridad. | |
US20130111542A1 (en) | Security policy tokenization | |
US20170308492A1 (en) | Isolating a redirected usb device to a set of applications | |
US10496590B2 (en) | Enabling redirection policies to be applied based on the windows class of a USB device | |
US9075996B2 (en) | Evaluating a security stack in response to a request to access a service | |
Ladan | Web services: Security challenges | |
CN114938288A (zh) | 一种数据访问方法、装置、设备以及存储介质 | |
CN112580112B (zh) | 一种基于全链共识、局部部署的智能合约实现方法、装置 | |
US8082341B2 (en) | ActiveX detection and handling in mozilla-based browsers | |
US11188647B2 (en) | Security via web browser tampering detection | |
US20220150277A1 (en) | Malware detonation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 20832311 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 20832311 Country of ref document: EP Kind code of ref document: A1 |