CN110958221B - 动态检测xml外部实体注入漏洞的方法及装置 - Google Patents

动态检测xml外部实体注入漏洞的方法及装置 Download PDF

Info

Publication number
CN110958221B
CN110958221B CN201911024040.9A CN201911024040A CN110958221B CN 110958221 B CN110958221 B CN 110958221B CN 201911024040 A CN201911024040 A CN 201911024040A CN 110958221 B CN110958221 B CN 110958221B
Authority
CN
China
Prior art keywords
attack
xml
request message
http request
external entity
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
CN201911024040.9A
Other languages
English (en)
Other versions
CN110958221A (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.)
Hangzhou Dt Dream Technology Co Ltd
Original Assignee
Hangzhou Dt Dream Technology 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 Hangzhou Dt Dream Technology Co Ltd filed Critical Hangzhou Dt Dream Technology Co Ltd
Priority to CN201911024040.9A priority Critical patent/CN110958221B/zh
Publication of CN110958221A publication Critical patent/CN110958221A/zh
Application granted granted Critical
Publication of CN110958221B publication Critical patent/CN110958221B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1433Vulnerability analysis
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1416Event detection, e.g. attack signature detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明提出一种动态检测XML外部实体注入漏洞的方法及装置,其中方法包括:基于创建的攻击文件的文件存储路径在待检测的原始HTTP请求报文的XML格式数据中注入外部实体,并基于注入外部实体后的原始HTTP请求报文构建攻击请求报文,检测应用程序所执行的预设的文件输入流函数的参数是否包括攻击文件的文件存储路径,便可实现自动检测原始HTTP请求报文是否存在XML外部实体注入漏洞,保证了检测的准确性和提高了检测效率,解决了手动检测存在遗漏的问题和静态代码扫描误报率高的问题。

Description

动态检测XML外部实体注入漏洞的方法及装置
技术领域
本发明涉及互联网技术领域,尤其涉及一种动态检测XML外部实体注入漏洞的方法及装置。
背景技术
XML((Extensible Markup Language,可扩展标记语言)外部实体注入漏洞是在对不安全的外部实体数据进行处理时引发的安全问题。XML外部实体注入漏洞的危害十分严重,将可能导致任意文件读取,获取服务器存储的重要文件;内网信息探测和内网攻击;DDOS(分布式拒绝服务,Distributed Denial of Service))攻击,如定义实体st1,再继续定义实体st2,st2实体引用10个st1实体,以此类推,当引入st9时,将会存在上亿个st1实体;远程命令执行,攻击者可以将包含命令的文件保存在远程服务器上,通过访问远程服务器来执行任意命令。
因此,检测XML外部实体注入漏洞成为亟待解决的技术问题。
发明内容
本发明旨在至少在一定程度上解决相关技术中的技术问题之一。
为此,本发明的第一个目的在于提出一种动态检测XML外部实体注入漏洞的方法。
本发明的第二个目的在于提出一种动态检测XML外部实体注入漏洞的装置。
本发明的第三个目的在于提出另一种动态检测XML外部实体注入漏洞的装置。
本发明的第四个目的在于提出一种计算机可读存储介质。
为达上述目的,本发明第一方面实施例提出了一种动态检测XML外部实体注入漏洞的方法,所述方法包括:
获取待检测的原始HTTP请求报文;
若所述原始HTTP请求报文中包含XML格式数据,则获取预先创建的攻击文件的文件存储路径,并根据所述文件存储路径定义外部实体,以及在所述XML格式数据中注入所述外部实体;
在所述原始HTTP请求报文中添加包括攻击报文标识的新的请求头,以形成攻击请求报文,其中,所述攻击报文标识用于标识所述攻击请求报文唯一性,且所述攻击报文标识与所述原始HTTP请求报文相关联,所述攻击请求报文用于发送给接收到所述原始HTTP请求报文的应用程序;
在所述应用程序响应完毕之后,若所述应用程序所执行的预设的文件输入流函数的参数包括所述文件存储路径,则确定与所述攻击报文标识关联的所述原始HTTP请求报文存在XML外部实体注入漏洞。
在本发明的一个实施例中,所述确定与所述攻击报文标识关联的所述原始HTTP请求报文存在XML外部实体注入漏洞包括:
在所述应用程序响应完毕之后,监听数据库中是否存在所述攻击报文标识;
若所述数据库中存在所述攻击报文标识,则获取所述数据库中存储的归属于与所述攻击报文标识对应的所述攻击请求报文的所述应用程序执行的代码和响应报文;
对所述应用程序执行的代码和所述响应报文进行分析,判断所述应用程序所执行的预设的文件输入流函数的参数是否包括所述文件存储路径;
若所述应用程序所执行的预设的文件输入流函数的参数包括所述文件存储路径,则确定与所述攻击报文标识关联的所述原始HTTP请求报文存在XML外部实体注入漏洞。
在本发明的一个实施例中,所述文件存储路径中的文件名为预先生成的特定标识符,所述确定与所述攻击报文标识关联的所述原始HTTP请求报文存在XML外部实体注入漏洞,包括:
若所述应用程序所执行的预设的文件输入流函数的参数包括所述特定标识符,则确定与所述攻击报文标识关联的所述原始HTTP请求报文存在XML外部实体注入漏洞。
在本发明的一个实施例中,在所述获取预先创建的攻击文件的文件存储路径之前,包括:
生成所述特定标识符,创建并存储文件名和文件内容均为所述特定标识符的攻击文件。
在本发明的一个实施例中,所述在所述XML格式数据中注入所述外部实体包括:
解析所述XML格式数据,在解析后的XML格式数据注入所述外部实体;
将解析后的XML格式数据的各个元素的元素内容替换为所述外部实体的实体参数。
在本发明的一个实施例中,在获取待检测的原始HTTP请求报文之后,还包括:
判断所述原始HTTP请求报文是否满足预设条件,若满足,则确定所述原始HTTP请求报文中包含XML格式数据;
其中,所述预设条件包括以下条件中的任一种:
所述原始HTTP请求报文的媒体类型信息为XML格式、所述原始HTTP请求报文的媒体类型信息为JSON格式,且解析后的JSON格式的数据中包括字符串<?xml、所述原始HTTP请求报文为Get请求,且所述Get请求的参数值包括字符串<?xml。
在本发明的一个实施例中,所述确定所述原始HTTP请求报文存在XML外部实体注入漏洞之后,还包括:
存储所述原始HTTP请求报文,并报告所述原始HTTP请求报文存在XML外部实体注入漏洞。
本发明实施例的动态检测XML外部实体注入漏洞的方法,基于创建的攻击文件的文件存储路径在待检测的原始HTTP请求报文的XML格式数据中注入外部实体,并基于注入外部实体后的原始HTTP请求报文构建攻击请求报文,检测应用程序所执行的预设的文件输入流函数的参数是否包括攻击文件的文件存储路径,便可实现自动检测原始HTTP请求报文是否存在XML外部实体注入漏洞,保证了检测的准确性和提高了检测效率,解决了手动检测存在遗漏的问题和静态代码扫描误报率高的问题。
为达上述目的,本发明第二方面实施例提出了一种动态检测XML外部实体注入漏洞的装置,所述装置包括:
获取模块,用于获取待检测的原始HTTP请求报文;
处理模块,用于若所述原始HTTP请求报文中包含XML格式数据,则获取预先创建的攻击文件的文件存储路径,并根据所述文件存储路径定义外部实体,以及在所述XML格式数据中注入所述外部实体;
形成模块,用于在所述原始HTTP请求报文中添加包括攻击报文标识的新的请求头,以形成攻击请求报文,其中,所述攻击报文标识用于标识所述攻击请求报文唯一性,且所述攻击报文标识与所述原始HTTP请求报文相关联,所述攻击请求报文用于发送给接收到所述原始HTTP请求报文的应用程序;
确定模块,用于在所述应用程序响应完毕之后,若所述应用程序所执行的预设的文件输入流函数的参数包括所述文件存储路径,则确定与所述攻击报文标识关联的所述原始HTTP请求报文存在XML外部实体注入漏洞。
在本发明的一个实施例中,所述确定模块具体用于:
在所述应用程序响应完毕之后,监听数据库中是否存在所述攻击报文标识;
若所述数据库中存在所述攻击报文标识,则获取所述数据库中存储的归属于与所述攻击报文标识对应的所述攻击请求报文的所述应用程序执行的代码和响应报文;
对所述应用程序执行的代码和所述响应报文进行分析,判断所述应用程序所执行的预设的文件输入流函数的参数是否包括所述文件存储路径;
若所述应用程序所执行的预设的文件输入流函数的参数包括所述文件存储路径,则确定与所述攻击报文标识关联的所述原始HTTP请求报文存在XML外部实体注入漏洞。
在本发明的一个实施例中,所述文件存储路径中的文件名为预先生成的特定标识符,所述确定模块具体用于:
若所述应用程序所执行的预设的文件输入流函数的参数包括所述特定标识符,则确定与所述攻击报文标识关联的所述原始HTTP请求报文存在XML外部实体注入漏洞。
在本发明的一个实施例中,所述装置还包括:
文件处理模块,用于生成所述特定标识符,创建并存储文件名和文件内容均为所述特定标识符的攻击文件。
在本发明的一个实施例中,所述处理模块具体用于:
解析所述XML格式数据,在解析后的XML格式数据注入所述外部实体;
将解析后的XML格式数据的各个元素的元素内容替换为所述外部实体的实体参数。
在本发明的一个实施例中,所述装置还包括:
判断模块,用于判断所述原始HTTP请求报文是否满足预设条件,若满足,则确定所述原始HTTP请求报文中包含XML格式数据;
其中,所述预设条件包括以下条件中的任一种:
所述原始HTTP请求报文的媒体类型信息为XML格式、所述原始HTTP请求报文的媒体类型信息为JSON格式,且解析后的JSON格式的数据中包括字符串<?xml、所述原始HTTP请求报文为Get请求,且所述Get请求的参数值包括字符串<?xml。
在本发明的一个实施例中,所述装置还包括:报告模块,用于存储所述原始HTTP请求报文,并报告所述原始HTTP请求报文存在XML外部实体注入漏洞。
本发明实施例的动态检测XML外部实体注入漏洞的装置,基于创建的攻击文件的文件存储路径在待检测的原始HTTP请求报文的XML格式数据中注入外部实体,并基于注入外部实体后的原始HTTP请求报文构建攻击请求报文,检测应用程序所执行的预设的文件输入流函数的参数是否包括攻击文件的文件存储路径,便可实现自动检测原始HTTP请求报文是否存在XML外部实体注入漏洞,保证了检测的准确性和提高了检测效率,解决了手动检测存在遗漏的问题和静态代码扫描误报率高的问题。
为达上述目的,本发明第三方面实施例提出了另一种动态检测XML外部实体注入漏洞的装置,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如上所述的动态检测XML外部实体注入漏洞的方法。
为了实现上述目的,本发明第四方面实施例提出了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上所述的动态检测XML外部实体注入漏洞的方法。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为示例性的XML格式数据;
图2为本发明实施例提供的一种动态检测XML外部实体注入漏洞的方法的流程示意图;
图3为本发明实施例提供的又一种动态检测XML外部实体注入漏洞的方法的流程示意图;
图4为本发明实施例提供的一种动态检测XML外部实体注入漏洞的装置的结构示意图;
图5为本发明实施例提供的又一种动态检测XML外部实体注入漏洞的装置的结构示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
下面参考附图描述本发明实施例的动态检测XML外部实体注入漏洞的方法及装置。
相关技术中,检测XML外部实体注入漏洞的方式主要有:
(1)静态代码扫描:通过代码扫描发现XML外部实体注入漏洞。
(2)手工渗透测试:渗透测试人员通过提交请求,构造XML外部实体注入攻击,根据响应报文检查是否存在漏洞。
然而,静态代码扫描误报较多,人工筛选困难。手工渗透测试,需要针对不同的请求分别构造攻击报文,容易遗留漏洞。
为了便于理解,对XML相关知识进行介绍:
XML格式数据的包括根元素和子元素。<>包裹为XML元素。XML格式数据必须包含根元素。根元素是所有其他元素的父元素。
图1为示例性的XML格式数据。<note>、<to>、<from>都是XML元素。在这里根元素是<note>,</note>是根元素的结尾,其中包含很多子元素如<to>、<from>。
为了解决上述问题,本发明提出了一种动态检测XML外部实体注入漏洞的方法,基于创建的攻击文件的文件存储路径在待检测的原始HTTP请求报文的XML格式数据中注入外部实体,并基于注入外部实体后的原始HTTP请求报文构建攻击请求报文,检测应用程序所执行的预设的文件输入流函数的参数是否包括攻击文件的文件存储路径,便可实现自动检测原始HTTP请求报文是否存在XML外部实体注入漏洞,保证了检测的准确性和提高了检测效率,解决了手动检测存在遗漏的问题和静态代码扫描误报率高的问题。
为了更加全面的描述本发明实施例的动态检测XML外部实体注入漏洞的方法,下面结合附图2,详细说明本发明实施例的动态检测XML外部实体注入漏洞的方法。
图2为本发明实施例提供的一种动态检测XML外部实体注入漏洞的方法的流程示意图。如图2所示,该动态检测XML外部实体注入漏洞的方法包括以下步骤:
步骤S101、获取待检测的原始HTTP请求报文。
本发明实施例提供的动态检测XML外部实体注入漏洞的方法的执行主体为动态检测XML外部实体注入漏洞的装置,动态检测XML外部实体注入漏洞的装置具体可以为硬件设备,或者硬件设备中安装的软件。其中,硬件设备例如可以为终端设备、服务器等。
具体的,可以实时获取发送给各个应用程序的原始HTTP(HyperText TransferProtocol,超文本传输协议)请求报文;也可以将实时获取发送给各个应用程序的原始HTTP(HyperText Transfer Protocol,超文本传输协议)请求报文先存储到数据库中,再从数据库中获取待检测的原始HTTP请求报文。其中,数据库可以是高性能的key-value键值Redis数据库,Redis数据库运行速度比较快,数据以键值对的形式存储。
需要指的是,当以键值对的形式在数据库存储各个应用程序的原始HTTP请求报文时,key键为原始HTTP请求报文中请求头携带的唯一标识码,value值为原始HTTP请求报文。
需要指出的是,可以在采集各个应用程序的原始HTTP请求报文时,对属于同一链路的各个原始HTTP请求报文的请求头中加入携带的唯一标识码,该唯一标识码可以理解为原始HTTP请求报文归属的链路的链路标识。
可以理解的是,属于同一链路的原始HTTP请求报文中请求头携带的唯一标识码均为相同,这样在漏洞分析阶段,可以链路标识获取归属于对应链路的各个原始HTTP请求报文进行漏洞分析。
例如,一个系统包含三个应用A、B、C,三个应用分别部署在不同的机器上。其中,应用A:抵押借贷应用(前端应用,用户仅能与该应用交互),应用B:信用服务应用,应用C:固定资产服务应用。
用户a想要通过应用A查询自己可贷款的额度时,在应用A提供的页面上填写表单提交后,应用A会去调用应用B查询用户a的信用信息,同时也会调用应用C查询用户a的固定资产情况,A将查询出来的数据做计算,最后计算出具体能借贷给用户a的额度并返回显示页面。
其中,a->A访问请求、A->B调用请求、A->C调用请求组成一条链路,分别在a->A访问请求、A->B调用请求、A->C调用请求的请求头中加入相同的唯一标识码1001。则数据库存储的数据如表1。
表1
1001 a->A访问请求
1001 A->B调用请求
1001 A->C调用请求
进一步地,为了实现无入侵式检测漏洞,可以在各个应用程序上运行代理程序agent,通过代理程序agent获取发送给各个应用程序的原始HTTP请求报文。
例如,应用程序A、B均运行了代理程序时,若向应用程序A发送了一个请求报文1,应用程序A上运行的代理程序会获取请求报文1;同理,若向应用程序B发送了一个请求报文2,应用程序B上运行的代理程序会获取请求报文2。
作为一种示例,代理程序可以为JavaAgent程序。JavaAgent程序可以无侵入式部署(对应用程序透明,不影响应用程序运行逻辑;对研发人员透明,研发人员在开发过程中感知不到JavaAgent程序存在,不影响代码开发),如应用为分布式应用,则需要在每个节点都进行部署JavaAgent程序。JavaAgent主要有2个强大的功能,它可以在加载java文件之前做拦截把字节码做修改,也可以在运行期将已经加载的类的字节码做变更,利用此特性,编写JavaAgent拦截应用程序的关键函数,在关键函数执行前后加入自定义的代码,负责收集HTTP请求相关的数据,HTTP请求中包含交互的数据。
以下对几种JavaAgent拦截应用程序的关键函数进行简单说明:
第一种关键函数为:javax.servlet.http.HttpServlet子类的service()方法。
该关键函数主要获取请求数据包中的数据,数据例如header请求头,请求头中的content-type、提交表单传递的参数等信息,请求数据包例如为HttpServletRequest请求数据包。
第二种关键函数为:javax.servlet.http.HttpServletRequest的getInputStream()方法,getInputStream()方法可以获取一个输入流。
该关键函数主要是获取请求数据包中的body请求体数据,很多应用通过json传递参数,json都是存在于请求数据包的body请求体中。
步骤S102、若所述原始HTTP请求报文中包含XML格式数据,则获取预先创建的攻击文件的文件存储路径,并根据所述文件存储路径定义外部实体,以及在所述XML格式数据中注入所述外部实体。
具体的,在获取到待检测的原始HTTP请求报文之后,识别原始HTTP请求报文中是否包含XML格式数据,若包含,则获取预先创建的攻击文件的文件存储路径,并根据所述文件存储路径在所述XML格式数据中注入外部实体。
在不同的应用场景中,识别原始HTTP请求报文中是否包含XML格式数据的方式不同。
作为一种示例,识别原始HTTP请求报文中是否包含XML格式数据的方式为:判断所述原始HTTP请求报文是否满足预设条件,若满足,则确定所述原始HTTP请求报文中包含XML格式数据。
其中,所述预设条件包括以下条件中的任一种:所述原始HTTP请求报文的媒体类型信息为XML格式、所述原始HTTP请求报文的媒体类型信息为JSON格式,且解析后的JSON格式的数据中包括字符串“<?xml”、所述原始HTTP请求报文为Get请求,且所述Get请求的参数值包括字符串“<?xml”。
具体而言,在获取到待检测的原始HTTP请求报文之后,分析原始HTTP请求报文的Content-Type媒体类型信息。
若Content-Type媒体类型信息为XML格式,确定原始HTTP请求报文中包含XML格式数据。
若Content-Type媒体类型信息为JSON(JavaScript Object Notation,JS对象简谱))格式,则解析JSON格式的数据,检查解析后的JSON格式的数据中是否包括“<?xml”,若是,则确定原始HTTP请求报文中包含XML格式数据。
具体而言,在获取到待检测的原始HTTP请求报文之后,若原始HTTP请求报文为Get请求,如果是Get请求,判断参数值是否以“<?xml”开头,若是,则确定原始HTTP请求报文中包含xml格式数据。
本实施例中,在确定原始HTTP请求报文中包含XML格式数据之后,在XML格式数据的基础上构造包括攻击内容的XML格式数据。
具体的,为了构造包括攻击内容的XML格式数据,先创建并保存攻击文件,接着获取该攻击文件的文件存储路径,并根据文件存储路径在XML格式数据中注入外部实体,以完成在XML格式数据的基础上构造包括攻击内容的XML格式数据。
其中,攻击文件的文件存储路径不限,例如可以将攻击文件保存在接收原始HTTP请求报文的应用程序当前运行的目录下,也可以是任意的目录下。
例如,攻击文件的文件存储路径为:file:///etc/user/xxecheck-1562896992129.txt。
举例来说,未注入外部实体的XML格式数据为:
<?xml version="1.0"?>
<to>abc</to>
注入外部实体后的XML格式数据为:
<?xml version="1.0"?>
<!DOCTYPE xxecheck<!ENTITY xxecheck SYSTEM"file:///etc/user/xxecheck-1562896992129.txt">
<to>&xxecheck</to>
通过比对未注入外部实体的XML格式数据和注入外部实体后的XML格式数据的可以发现,通过替换XML格式数据元素内容,这里是<to></to>之间的内容,注入前<to>abc</to>,注入后把abc替换成&xxecheck。在应用程序处理这个XML格式数据文档的时候,会根据<!ENTITY xxecheck SYSTEM"file:///etc/user/xxecheck-1562896992129.txt">的定义,将元素<to>&xxecheck</to>的&xxecheck解析成file:///etc/user/xxecheck-1562896992129.txt,然后会解析xxecheck-1562896992129.txt文件。这就是XML外部实体注入,原本要解析的XML元素是<to>abc</to>,通过定义外部实体和替换abc,最后变为解析xxecheck-1562896992129.txt文件解析文件。
在此对如何根据文件存储路径在XML格式数据中注入外部实体进行介绍:
首先,定义外部实体entity。以entity的定义语法为<!DOCTYPE实体名[<!ENTITY实体名实体内容]>为例,定义外部实体xxecheck如下:
xxecheck[<!ENTITY xxecheck SYSTEM"file:///etc/user/xxecheck-1562896992129.txt">]
其中,file:///etc/user/xxecheck-1562896992129.txt为攻击文件的文件存储路径。
其次,解析XML格式数据,判断XML格式数据的文档类型声明DOCTYPE是否为空,若不为空,则在DOCTYPE的后面加上外部实体,若为空,生成DOCTYPE,并在DOCTYPE的后面加上外部实体。
例如,<!DOCTYPE xxecheck<!ENTITY xxecheck SYSTEM"file:///etc/user/xxecheck-1562896992129.txt">
再次,将XML的根元素和子元素的元素内容全部替换为所定义的外部实体的实体参数。例如,将<to>abc</to>修改为<to>&xxecheck</to>。其中,&xxecheck为实体xxecheck的实体参数。
步骤S103、在所述原始HTTP请求报文中添加包括攻击报文标识的新的请求头,以形成攻击请求报文,其中,所述攻击报文标识用于标识所述攻击请求报文唯一性,且所述攻击报文标识与所述原始HTTP请求报文相关联,所述攻击请求报文用于发送给接收到所述原始HTTP请求报文的应用程序。
具体的,在原始HTTP请求报文中的XML格式数据注入外部实体之后,在原始HTTP请求报文中添加新的请求头,完成自动构造攻击请求报文。在得到攻击请求报文之后,向接收到原始HTTP请求报文的应用程序发送该攻击请求报文,根据应用程序的响应情况测试原始HTTP请求报文是否存在XML外部实体注入漏洞。作为一种示例,可以通过OkHttp网络请求框架构造攻击请求报文并向接收到原始HTTP请求报文的应用程序进行发送,当然,也可以用其他的网络框架替代。其中,OkHttp网络请求框架是一种处理网络请求的开源的轻量级框架,关于OkHttp网络请求框架的介绍参见相关技术。
具体而言,在为每个待检测的原始HTTP请求报文构造攻击请求报文时,首先生成用于标识攻击请求报文唯一性的报文标识,并将攻击报文标识与原始HTTP请求报文相关联,在原始HTTP请求报文中添加新的请求头,完成自动构造攻击请求报文。
其中,攻击报文标识的具体形式不限,例如攻击报文标识包括指示请求性质的字符串和随机生成的随机数或时间戳,但并不以此为限。例如攻击报文标识为xxe-1156219870,其中xxe用于指示请求为XML外部实体攻击请求的字符串,1156219870为时间戳,字符串和时间戳通过符号-连接。
举例来说,通过OkHttp网络请求框架在原始HTTP请求报文的基础上添加一个新的请求头header,新的请求头header的名称为replay-form,对应的值为xxe-1156219870,以构建出攻击请求报文,并向对应的应用程序发送该攻击请求报文。应用程序在接收到攻击请求报文之后,通过代理程序获取并存储该攻击请求报文,例如将攻击请求报文存储在Redis数据库中。等待攻击请求报文响应完毕,基于攻击报文标识xxe-1156219870查询Redis数据库,获取对应的攻击请求报文,以及相关响应报文、应用程序执行的代码。步骤S104、在所述应用程序响应完毕之后,若所述应用程序所调用的预设的文件输入流函数的参数包括所述文件存储路径,则确定与所述攻击报文标识关联的所述原始HTTP请求报文存在XML外部实体注入漏洞。
在不同的编程语言中,文件输入流函数不同,以JAVA语言为例,文件输入流函数为java.io.FileInputStream,java.io.FileInputStream通过文件存储路径读取对应的文件数据的输入字节流。
本实施例中,在应用程序响应攻击请求完毕之后,若应用程序调用了预设的文件输入流函数,且预设的文件输入流函数的参数为创建的攻击文件的文件存储路径,说明应用程序在响应攻击请求的过程中,调用了攻击文件,同时确定待检测的原始HTTP请求报文中存在XML外部实体注入漏洞。
作为一种示例,步骤S104的实现方式为:在所述应用程序响应完毕之后,监听数据库中是否存在所述攻击报文标识;若所述数据库中存在所述攻击报文标识,则获取所述数据库中存储的归属于与所述攻击报文标识对应的所述攻击请求报文的所述应用程序执行的代码和响应报文;对所述应用程序执行的代码和所述响应报文进行分析,判断所述应用程序所执行的预设的文件输入流函数的参数是否包括所述文件存储路径;若所述应用程序所执行的预设的文件输入流函数的参数包括所述文件存储路径,则确定与所述攻击报文标识关联的所述原始HTTP请求报文存在XML外部实体注入漏洞。
需要指出的是,提前在规则中定义应用程序所执行的代码中哪些代码需要分析。在本实施例中,提前在规则中定义应用程序所执行的代码中预设的文件输入流函数是否会被调用,如果被调用则抓取预设的文件输入流函数和以及从响应报文中获取对应的参数。
需要指的的是,数据库可以为key-value键值形式的Redis数据库。应用程序响应攻击请求报文之后,该攻击请求报文、所述攻击请求报文对应的应用程序执行的代码和响应报文会被存储到数据库中。实时对数据库进行监听,若监听到数据库中存在攻击报文标识,说明应用程序执行了与攻击报文标识对应所述攻击请求报文,获取攻击请求报文,再获取该攻击请求报文对应的应用程序执行的代码和响应报文,分析应用程序所执行的代码中预设的文件输入流函数是否会被调用,如果被调用则抓取预设的文件输入流函数和以及从响应报文中获取对应的参数,进而判断应用程序所执行的预设的文件输入流函数的参数是否包括所述文件存储路径;所述应用程序所执行的预设的文件输入流函数的参数包括文件存储路径,则确定所述攻击报文标识关联的原始HTTP请求报文存在XML外部实体注入漏洞。
进一步地,为了使测试人员获知漏洞检测的情况,在步骤104之后,所述方法还包括:存储所述原始HTTP请求报文,并报告所述原始HTTP请求报文存在XML外部实体注入漏洞。其中,可以将存在XML外部实体注入漏洞统一存储在本地文件中,但并不以此为限。
本发明实施例提供的动态检测XML外部实体注入漏洞的方法,基于创建的攻击文件的文件存储路径在待检测的原始HTTP请求报文的XML格式数据中注入外部实体,并基于注入外部实体后的原始HTTP请求报文构建攻击请求报文,检测应用程序所执行的预设的文件输入流函数的参数是否包括攻击文件的文件存储路径,便可实现自动检测原始HTTP请求报文是否存在XML外部实体注入漏洞,保证了检测的准确性和提高了检测效率,解决了手动检测存在遗漏的问题和静态代码扫描误报率高的问题。
图3为本发明实施例提供的又一种动态检测XML外部实体注入漏洞的方法的流程示意图。如图3所示,该动态检测XML外部实体注入漏洞的方法包括以下步骤:
步骤201、获取待检测的原始HTTP请求报文。
本实施例中的步骤201和上述实施例中的步骤101的实现方式相同,在此不再赘述。
步骤202、若所述原始HTTP请求报文中包含XML格式数据,则生成所述特定标识符,创建并存储文件名和文件内容均为所述特定标识符的攻击文件。
本实施例中的步骤202的检测原始HTTP请求报文中是否包括XML格式数据的实现方式与上述实施例中的步骤101的检测原始HTTP请求报文中是否包括XML格式数据实现方式相同,在此不再赘述。
具体地,检测原始HTTP请求报文是否存在XML外部实体注入漏洞与所创建的攻击文件的文件存储路径紧密相关。在本实施例中,在确定待检测的原始HTTP请求报文存在XML格式数据之后,生成特定标识符,创建并存储文件名和文件内容均为特定标识符的攻击文件,其中,特定标识符唯一标识所创建的攻击文件。
其中,特定标识符具体形式不限,例如特定标识符由包括指示文件性质的字符串和随机生成的随机数或时间戳,但并不以此为限。例如标识所创建的攻击文件的特定标识符为xxecheck-1562896992129,其中xxecheck为用于指示文件性质为检测XML外部实体漏洞的字符串,1562896992129为随机数。这样,所创建的攻击文件的文件内容和文件名均为特定标识符为xxecheck-1562896992129,字符串和随机数通过符号-连接。攻击文件可以保存在应用程序当前运行的目录下,也可以保存在指定的目录下,具体视情形而定。例如攻击文件的文件存储路径为file:///etc/user/xxecheck-1562896992129.txt。
步骤203、获取预先创建的攻击文件的文件存储路径,并根据所述文件存储路径定义外部实体,以及在所述XML格式数据中注入所述外部实体。
本实施例中的步骤203和上述实施例中的步骤101中的注入外部实体的实现方式相同,在此不再赘述。
步骤204、在所述原始HTTP请求报文中添加包括攻击报文标识的新的请求头,以形成攻击请求报文,其中,所述攻击报文标识用于标识所述攻击请求报文唯一性,且所述攻击报文标识与所述原始HTTP请求报文相关联,所述攻击请求报文用于发送给接收到所述原始HTTP请求报文的应用程序。
本实施例中的步骤204和上述实施例中的步骤103中的注入外部实体的实现方式相同,在此不再赘述。
步骤205、在所述应用程序响应完毕之后,若所述应用程序所执行的预设的文件输入流函数的参数包括所述特定标识符,则确定与所述攻击报文标识关联的所述原始HTTP请求报文存在XML外部实体注入漏洞。
在不同的编程语言中,文件输入流函数不同,以JAVA语言为例,文件输入流函数为java.io.FileInputStream,java.io.FileInputStream通过文件存储路径读取对应的文件数据的输入字节流。
本实施例中,在应用程序响应攻击请求完毕之后,若应用程序调用了预设的文件输入流函数,且预设的文件输入流函数的参数为创建的攻击文件的文件存储路径,说明应用程序在响应攻击请求的过程中,调用了攻击文件,同时确定待检测的原始HTTP请求报文中存在XML外部实体注入漏洞。
具体而言,由于文件存储路径中的文件名为预先生成的特定标识符,则在确定原始HTTP请求报文是否存在XML外部实体注入漏洞时,执行判断应用程序所执行的预设的文件输入流函数的参数是否包括该特定标识符,若是,则确定原始HTTP请求报文存在XML外部实体注入漏洞,从而实现只需检测一个特定标识符便可完成检测原始HTTP请求报文中是否存在XML外部实体注入漏洞,进一步地,降低了检测的复杂度,提高检测效率。
本发明实施例提供的动态检测XML外部实体注入漏洞的方法,实现只需检测一个特定标识符便可完成检测原始HTTP请求报文中是否存在XML外部实体注入漏洞,进一步地,降低了检测的复杂度,提高检测效率。
图4为本发明实施例提供的一种动态检测XML外部实体注入漏洞的装置的结构示意图。如图4所示,该动态检测XML外部实体注入漏洞的装置,包括:获取模块11、处理模块12、形成模块13、确定模块14。
获取模块11,用于获取待检测的原始HTTP请求报文;
处理模块12,用于若所述原始HTTP请求报文中包含XML格式数据,则获取预先创建的攻击文件的文件存储路径,并根据所述文件存储路径定义外部实体,以及在所述XML格式数据中注入所述外部实体;
形成模块13,用于在所述原始HTTP请求报文中添加包括攻击报文标识的新的请求头,以形成攻击请求报文,其中,所述攻击报文标识用于标识所述攻击请求报文唯一性,且所述攻击报文标识与所述原始HTTP请求报文相关联,所述攻击请求报文用于发送给接收到所述原始HTTP请求报文的应用程序;
确定模块14,用于在所述应用程序响应完毕之后,若所述应用程序所执行的预设的文件输入流函数的参数包括所述文件存储路径,则确定与所述攻击报文标识关联的所述原始HTTP请求报文存在XML外部实体注入漏洞。
在本发明的一个实施例中,所述确定模块14具体用于:
在所述应用程序响应完毕之后,监听数据库中是否存在所述攻击报文标识;
若所述数据库中存在所述攻击报文标识,则获取所述数据库中存储的归属于与所述攻击报文标识对应的所述攻击请求报文的所述应用程序执行的代码和响应报文;
对所述应用程序执行的代码和所述响应报文进行分析,判断所述应用程序所执行的预设的文件输入流函数的参数是否包括所述文件存储路径;
若所述应用程序所执行的预设的文件输入流函数的参数包括所述文件存储路径,则确定与所述攻击报文标识关联的所述原始HTTP请求报文存在XML外部实体注入漏洞。
在本发明的一个实施例中,所述文件存储路径中的文件名为预先生成的特定标识符,所述确定模块14具体用于:
若所述应用程序所执行的预设的文件输入流函数的参数包括所述特定标识符,则确定与所述攻击报文标识关联的所述原始HTTP请求报文存在XML外部实体注入漏洞。
在本发明的一个实施例中,所述装置还包括:
文件处理模块,用于生成所述特定标识符,创建并存储文件名和文件内容均为所述特定标识符的攻击文件。
在本发明的一个实施例中,所述处理模块具体用于:
解析所述XML格式数据,在解析后的XML格式数据注入所述外部实体;
将解析后的XML格式数据的各个元素的元素内容替换为所述外部实体的实体参数。
在本发明的一个实施例中,所述装置还包括:
判断模块,用于判断所述原始HTTP请求报文是否满足预设条件,若满足,则确定所述原始HTTP请求报文中包含XML格式数据;
其中,所述预设条件包括以下条件中的任一种:
所述原始HTTP请求报文的媒体类型信息为XML格式、所述原始HTTP请求报文的媒体类型信息为JSON格式,且解析后的JSON格式的数据中包括字符串<?xml、所述原始HTTP请求报文为Get请求,且所述Get请求的参数值包括字符串<?xml。
在本发明的一个实施例中,所述装置还包括:报告模块,用于存储所述原始HTTP请求报文,并报告所述原始HTTP请求报文存在XML外部实体注入漏洞。
需要说明的是,前述对动态检测XML外部实体注入漏洞的方法实施例的解释说明也适用于该实施例的动态检测XML外部实体注入漏洞的装置,此处不再赘述。
本发明实施例的动态检测XML外部实体注入漏洞的装置,基于创建的攻击文件的文件存储路径在待检测的原始HTTP请求报文的XML格式数据中注入外部实体,并基于注入外部实体后的原始HTTP请求报文构建攻击请求报文,检测应用程序所执行的预设的文件输入流函数的参数是否包括攻击文件的文件存储路径,便可实现自动检测原始HTTP请求报文是否存在XML外部实体注入漏洞,保证了检测的准确性和提高了检测效率,解决了手动检测存在遗漏的问题和静态代码扫描误报率高的问题。
图5为本发明实施例提供的另一种动态检测XML外部实体注入漏洞的装置的结构示意图。该动态检测XML外部实体注入漏洞的装置包括:
存储器1001、处理器1002及存储在存储器1001上并可在处理器1002上运行的计算机程序。
处理器1002执行所述程序时实现上述实施例中提供的动态检测XML外部实体注入漏洞的方法。
进一步地,动态检测XML外部实体注入漏洞的装置还包括:
通信接口1003,用于存储器1001和处理器1002之间的通信。
存储器1001,用于存放可在处理器1002上运行的计算机程序。
存储器1001可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
处理器1002,用于执行所述程序时实现上述实施例所述的动态检测XML外部实体注入漏洞的方法。
如果存储器1001、处理器1002和通信接口1003独立实现,则通信接口1003、存储器1001和处理器1002可以通过总线相互连接并完成相互间的通信。所述总线可以是工业标准体系结构(Industry Standard Architecture,简称为ISA)总线、外部设备互连(Peripheral Component,简称为PCI)总线或扩展工业标准体系结构(Extended IndustryStandard Architecture,简称为EISA)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
可选的,在具体实现上,如果存储器1001、处理器1002及通信接口1003,集成在一块芯片上实现,则存储器1001、处理器1002及通信接口1003可以通过内部接口完成相互间的通信。
处理器1002可能是一个中央处理器(Central Processing Unit,简称为CPU),或者是特定集成电路(Application Specific Integrated Circuit,简称为ASIC),或者是被配置成实施本发明实施例的一个或多个集成电路。
本发明还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上所述的动态检测XML外部实体注入漏洞的方法。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。如,如果用硬件来实现和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。

Claims (9)

1.一种动态检测XML外部实体注入漏洞的方法,其特征在于,包括:
获取待检测的原始HTTP请求报文;
若所述原始HTTP请求报文中包含XML格式数据,则获取预先创建的攻击文件的文件存储路径,并根据所述文件存储路径定义外部实体,以及在所述XML格式数据中注入所述外部实体;
在所述原始HTTP请求报文中添加包括攻击报文标识的新的请求头,以形成攻击请求报文,其中,所述攻击报文标识用于标识所述攻击请求报文唯一性,且所述攻击报文标识与所述原始HTTP请求报文相关联,所述攻击请求报文用于发送给接收到所述原始HTTP请求报文的应用程序;
在所述应用程序响应完毕之后,若所述应用程序所执行的预设的文件输入流函数的参数包括所述文件存储路径,则确定与所述攻击报文标识关联的所述原始HTTP请求报文存在XML外部实体注入漏洞,所述确定与所述攻击报文标识关联的所述原始HTTP请求报文存在XML外部实体注入漏洞包括:在所述应用程序响应完毕之后,监听数据库中是否存在所述攻击报文标识;若所述数据库中存在所述攻击报文标识,则获取所述数据库中存储的归属于与所述攻击报文标识对应的所述攻击请求报文的所述应用程序执行的代码和响应报文;对所述应用程序执行的代码和所述响应报文进行分析,判断所述应用程序所执行的预设的文件输入流函数的参数是否包括所述文件存储路径;若所述应用程序所执行的预设的文件输入流函数的参数包括所述文件存储路径,则确定与所述攻击报文标识关联的所述原始HTTP请求报文存在XML外部实体注入漏洞。
2.如权利要求1所述的方法,其特征在于,所述文件存储路径中的文件名为预先生成的特定标识符,所述确定与所述攻击报文标识关联的所述原始HTTP请求报文存在XML外部实体注入漏洞,包括:
若所述应用程序所执行的预设的文件输入流函数的参数包括所述特定标识符,则确定与所述攻击报文标识关联的所述原始HTTP请求报文存在XML外部实体注入漏洞。
3.如权利要求2所述的方法,其特征在于,在所述获取预先创建的攻击文件的文件存储路径之前,包括:
生成所述特定标识符,创建并存储文件名和文件内容均为所述特定标识符的攻击文件。
4.如权利要求1所述的方法,其特征在于,所述在所述XML格式数据中注入所述外部实体包括:
解析所述XML格式数据,在解析后的XML格式数据注入所述外部实体;
将解析后的XML格式数据的各个元素的元素内容替换为所述外部实体的实体参数。
5.如权利要求1所述的方法,其特征在于,在获取待检测的原始HTTP请求报文之后,还包括:
判断所述原始HTTP请求报文是否满足预设条件,若满足,则确定所述原始HTTP请求报文中包含XML格式数据;
其中,所述预设条件包括以下条件中的任一种:
所述原始HTTP请求报文的媒体类型信息为XML格式、所述原始HTTP请求报文的媒体类型信息为JSON格式,且解析后的JSON格式的数据中包括字符串<?xml、所述原始HTTP请求报文为Get请求,且所述Get请求的参数值包括字符串<?xml。
6.如权利要求1所述的方法,其特征在于,所述确定所述原始HTTP请求报文存在XML外部实体注入漏洞之后,还包括:
存储所述原始HTTP请求报文,并报告所述原始HTTP请求报文存在XML外部实体注入漏洞。
7.一种动态检测XML外部实体注入漏洞的装置,其特征在于,包括:
获取模块,用于获取待检测的原始HTTP请求报文;
处理模块,用于若所述原始HTTP请求报文中包含XML格式数据,则获取预先创建的攻击文件的文件存储路径,并根据所述文件存储路径定义外部实体,以及在所述XML格式数据中注入所述外部实体;
形成模块,用于在所述原始HTTP请求报文中添加包括攻击报文标识的新的请求头,以形成攻击请求报文,其中,所述攻击报文标识用于标识所述攻击请求报文唯一性,且所述攻击报文标识与所述原始HTTP请求报文相关联,所述攻击请求报文用于发送给接收到所述原始HTTP请求报文的应用程序;
确定模块,用于在所述应用程序响应完毕之后,若所述应用程序所执行的预设的文件输入流函数的参数包括所述文件存储路径,则确定与所述攻击报文标识关联的所述原始HTTP请求报文存在XML外部实体注入漏洞,所述确定模块具体用于:在所述应用程序响应完毕之后,监听数据库中是否存在所述攻击报文标识;若所述数据库中存在所述攻击报文标识,则获取所述数据库中存储的归属于与所述攻击报文标识对应的所述攻击请求报文的所述应用程序执行的代码和响应报文;对所述应用程序执行的代码和所述响应报文进行分析,判断所述应用程序所执行的预设的文件输入流函数的参数是否包括所述文件存储路径;若所述应用程序所执行的预设的文件输入流函数的参数包括所述文件存储路径,则确定与所述攻击报文标识关联的所述原始HTTP请求报文存在XML外部实体注入漏洞。
8.一种动态检测XML外部实体注入漏洞的装置,其特征在于,包括:
存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-6中任一所述的动态检测XML外部实体注入漏洞的方法。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-6中任一所述的动态检测XML外部实体注入漏洞的方法。
CN201911024040.9A 2019-10-25 2019-10-25 动态检测xml外部实体注入漏洞的方法及装置 Active CN110958221B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911024040.9A CN110958221B (zh) 2019-10-25 2019-10-25 动态检测xml外部实体注入漏洞的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911024040.9A CN110958221B (zh) 2019-10-25 2019-10-25 动态检测xml外部实体注入漏洞的方法及装置

Publications (2)

Publication Number Publication Date
CN110958221A CN110958221A (zh) 2020-04-03
CN110958221B true CN110958221B (zh) 2021-12-28

Family

ID=69975745

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911024040.9A Active CN110958221B (zh) 2019-10-25 2019-10-25 动态检测xml外部实体注入漏洞的方法及装置

Country Status (1)

Country Link
CN (1) CN110958221B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112464247A (zh) * 2020-12-03 2021-03-09 国网黑龙江省电力有限公司电力科学研究院 一种被动检查xxe漏洞的方法
CN112468505A (zh) * 2020-12-03 2021-03-09 国网黑龙江省电力有限公司电力科学研究院 一种主动检查xxe漏洞的方法
CN112653709A (zh) * 2020-12-30 2021-04-13 北京天融信网络安全技术有限公司 漏洞检测方法、装置、电子设备及可读存储介质
CN113810424A (zh) * 2021-09-26 2021-12-17 杭州安恒信息技术股份有限公司 一种xxe漏洞检测方法、装置、设备及可读存储介质
CN114157452A (zh) * 2021-11-12 2022-03-08 湖北天融信网络安全技术有限公司 一种基于http连接平台的xxe漏洞的检测方法及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103530564A (zh) * 2013-09-24 2014-01-22 国家电网公司 一种sql注入漏洞测试与验证方法及系统
CN105306473A (zh) * 2015-11-05 2016-02-03 北京奇虎科技有限公司 一种防止注入攻击的方法、客户端、服务器和系统
US9479526B1 (en) * 2014-11-13 2016-10-25 Shape Security, Inc. Dynamic comparative analysis method and apparatus for detecting and preventing code injection and other network attacks
CN106357668A (zh) * 2016-10-14 2017-01-25 福建亿榕信息技术有限公司 预防xss攻击的方法
CN107948163A (zh) * 2017-11-29 2018-04-20 中科信息安全共性技术国家工程研究中心有限公司 一种xml注入漏洞检测与防御方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8726394B2 (en) * 2009-12-15 2014-05-13 Seeker Security Ltd. Method and system of runtime analysis
US10805345B2 (en) * 2017-09-29 2020-10-13 Paypal, Inc. Blind injection attack mitigation

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103530564A (zh) * 2013-09-24 2014-01-22 国家电网公司 一种sql注入漏洞测试与验证方法及系统
US9479526B1 (en) * 2014-11-13 2016-10-25 Shape Security, Inc. Dynamic comparative analysis method and apparatus for detecting and preventing code injection and other network attacks
CN105306473A (zh) * 2015-11-05 2016-02-03 北京奇虎科技有限公司 一种防止注入攻击的方法、客户端、服务器和系统
CN106357668A (zh) * 2016-10-14 2017-01-25 福建亿榕信息技术有限公司 预防xss攻击的方法
CN107948163A (zh) * 2017-11-29 2018-04-20 中科信息安全共性技术国家工程研究中心有限公司 一种xml注入漏洞检测与防御方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
XXE漏洞及其防御策略研究;应宗浩等;《科技风》;20180705(第19期);全文 *

Also Published As

Publication number Publication date
CN110958221A (zh) 2020-04-03

Similar Documents

Publication Publication Date Title
CN110958221B (zh) 动态检测xml外部实体注入漏洞的方法及装置
CN111045756B (zh) 生成接口服务的方法、装置、计算设备和介质
US10102108B2 (en) Injected instrumentation application monitoring and management
US8572747B2 (en) Policy-driven detection and verification of methods such as sanitizers and validators
CN108134708B (zh) 监控第三方接口的方法和装置
CN103729477A (zh) 一种网页数据格式检测方法及装置
CN111756697A (zh) Api安全检测方法、装置、存储介质及计算机设备
CN110941632A (zh) 一种数据库审计方法、装置及设备
CN113961930A (zh) Sql注入漏洞检测方法、装置及电子设备
CN110908910B (zh) 一种基于区块链的测试监控方法、装置及可读存储介质
JP4587976B2 (ja) アプリケーションの脆弱性検査方法および装置
CN115186274A (zh) 基于iast的安全测试方法及装置
US20140337069A1 (en) Deriving business transactions from web logs
CN116881100A (zh) 日志检测方法、日志告警方法、系统、设备及存储介质
CN111049795B (zh) 分布式Web应用的敏感数据未加密漏洞的检测方法及装置
CN113014587B (zh) 一种api检测方法、装置、电子设备及存储介质
CN115378655A (zh) 漏洞检测方法及装置
US9864613B2 (en) Configuration checker for application
CN113886812A (zh) 检测防护方法、系统、计算机设备及可读存储介质
CN114168961A (zh) 应用的风险预测方法、系统及存储介质
CN108536604B (zh) 一种测试web页面响应时间的方法及终端
CN110443043A (zh) 一种对安卓应用程序的漏洞检测方法以及设备
CN113778800B (zh) 一种报错信息处理方法、装置、系统、设备及存储介质
CN117707653B (zh) 参数监控方法、装置、电子设备及计算机可读存储介质
CN112181539B (zh) 文件处理方法、装置、设备及介质

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