CN106909846A - 一种基于虚拟解析的漏洞检测方法及其装置 - Google Patents

一种基于虚拟解析的漏洞检测方法及其装置 Download PDF

Info

Publication number
CN106909846A
CN106909846A CN201710028970.6A CN201710028970A CN106909846A CN 106909846 A CN106909846 A CN 106909846A CN 201710028970 A CN201710028970 A CN 201710028970A CN 106909846 A CN106909846 A CN 106909846A
Authority
CN
China
Prior art keywords
output point
target output
probe
target
request
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.)
Granted
Application number
CN201710028970.6A
Other languages
English (en)
Other versions
CN106909846B (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.)
Shenzhen Jiuzhou Technology Co Ltd
Anhui Open Source Internet Safe Technology Ltd
Shenzhen Kaiyuan Internet Security Technology Co Ltd
Original Assignee
Shenzhen Jiuzhou Technology Co Ltd
Anhui Open Source Internet Safe Technology Ltd
Shenzhen Kaiyuan Internet Security 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 Shenzhen Jiuzhou Technology Co Ltd, Anhui Open Source Internet Safe Technology Ltd, Shenzhen Kaiyuan Internet Security Technology Co Ltd filed Critical Shenzhen Jiuzhou Technology Co Ltd
Priority to CN201710028970.6A priority Critical patent/CN106909846B/zh
Publication of CN106909846A publication Critical patent/CN106909846A/zh
Application granted granted Critical
Publication of CN106909846B publication Critical patent/CN106909846B/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/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Virology (AREA)
  • Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Information Transfer Between Computers (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种基于虚拟解析的漏洞检测方法及装置,其中,该方法包括:接收客户端所发送的用户请求;对用户请求插入探针以获取目标输出点的上下文信息及目标输出点的XPath;根据目标输出点的上下文信息构造目标特征值;针对目标注入参数,向Web服务器发送带有目标特征值的检测请求;接收Web服务器对检测请求的第一响应结果;根据虚拟解析器对页面源代码进行解析以得到第一解析页面;根据目标输出点的XPath对第一解析页面进行特征值检测以得到XSS漏洞。本发明实施例提出了一种结合探针预检测技术定位输出点XPath,并在响应检测阶段通过XPath精确确认XSS漏洞的机制,从而提高了漏洞检测的准确性。

Description

一种基于虚拟解析的漏洞检测方法及其装置
技术领域
本发明涉及Web应用测试技术领域,尤其涉及一种基于虚拟解析的漏洞检测方法及其装置。
背景技术
近年来,随着Web应用的广泛使用,Web安全问题也日益突出。其中,XSS(Cross-site scripting,跨站脚本攻击)漏洞已成为Web应用程序中最常见的漏洞之一,因此,对XSS漏洞的自动化检测也成为了一项重要的技术。
目前,一般采用XSS检测工具来检测XSS漏洞,其具体过程如下:(1)XSS检测工具捕获客户端(浏览器)所发送的http请求;(2)XSS检测工具构造带有特征值的请求;(3)XSS检测工具将带有特征值的请求发送至Web服务器,Web服务器响应该请求;(4)XSS检测工具在该请求响应的页面源代码中检测特征值,若在某处检测到特征值,则认为此处为一个XSS漏洞。
但是,上述漏洞检测方法中未对可能的XSS输出点进行定位,从而检测的准确性较低。
发明内容
本发明实施例所要解决的技术问题是:提供一种基于虚拟解析的漏洞检测方法,以提高检测的准确性。
为解决上述技术问题,本发明实施例采用的技术方案如下:
提供一种基于虚拟解析的漏洞检测方法,包括:
接收客户端所发送的用户请求;
对所述用户请求插入探针以获取目标注入参数、目标输出点、所述目标输出点的上下文信息及所述目标输出点的XPath;
根据所述目标输出点的上下文信息构造目标特征值;
针对所述目标注入参数,向Web服务器发送带有所述目标特征值的检测请求;
接收所述Web服务器对所述检测请求的第一响应结果,所述第一响应结果包括页面源代码;
根据虚拟解析器对所述页面源代码进行解析以得到第一解析页面;
根据所述目标输出点的XPath对所述第一解析页面进行特征值检测以得到XSS漏洞。
具体地,所述用户请求中包括至少一个参数,对所述用户请求插入探针以获取目标注入参数、目标输出点、所述目标输出点的上下文信息及所述目标输出点的XPath具体包括:
对每一个所述参数构造所述探针并发送带有所述探针的第一请求至Web服务器,且所述探针具有唯一性;
接收所述Web服务器针对所述第一请求的第二响应结果,并根据所述第二响应结果获取所述目标注入参数、目标输出点、所述目标输出点的上下文信息及所述目标输出点的XPath。
可选地,所述第二响应结果包括页面源代码,根据所述第二响应结果获取所述目标注入参数、目标输出点、所述目标输出点的上下文信息及所述目标输出点的XPath具体包括:
检测所述页面源代码中是否存在所述探针;
若存在,则确定所述探针所在的位置为所述目标输出点,同时确定所述探针所对应的参数为所述目标注入参数,同时确定所述探针所对应的参数为所述目标注入参数,并获取所述目标输出点的上下文信息及所述目标输出点的XPath。
可选地,所述第二响应结果包括页面源代码,根据所述第二响应结果获取所述目标注入参数、目标输出点、所述目标输出点的上下文信息及所述目标输出点的XPath具体包括:
根据所述虚拟解析器对所述页面源代码进行解析以得到第二解析界面;
检测所述第二解析界面中是否存在所述探针;
若存在,则确定所述探针所在的位置为所述目标输出点,同时确定所述探针所对应的参数为所述目标注入参数,同时确定所述探针所对应的参数为所述目标注入参数,并获取所述目标输出点的上下文信息及所述目标输出点的XPath。
具体地,该用户请求为http请求。
相应地,本发明实施例还提供了一种基于虚拟解析的漏洞检测装置,包括:
接收模块,用于接收客户端所发送的用户请求;
获取模块,用于对所述用户请求插入探针以获取目标注入参数、目标输出点、所述目标输出点的上下文信息及所述目标输出点的XPath;
构造模块,用于根据所述目标输出点的上下文信息构造目标特征值;
发送模块,用于针对所述目标注入参数,向Web服务器发送带有所述目标特征值的检测请求;
所述接收模块还用于接收所述Web服务器对所述检测请求的第一响应结果,所述第一响应结果包括页面源代码;
解析模块,用于根据虚拟解析器对所述页面源代码进行解析以得到第一解析页面;
检测模块,用于根据所述目标输出点的XPath对所述第一解析页面进行特征值检测以得到XSS漏洞。
具体地,所述用户请求中包括至少一个参数,所述获取模块具体用于:
对每一个所述参数构造所述探针并发送带有所述探针的第一请求至Web服务器,且所述探针具有唯一性;
接收所述Web服务器针对所述第一请求的第二响应结果,并根据所述第二响应结果获取所述目标注入参数、目标输出点、所述目标输出点的上下文信息及所述目标输出点的XPath。
可选地,所述第二响应结果包括页面源代码,所述获取模块具体用于:
检测所述页面源代码中是否存在所述探针;
若存在,则确定所述探针所在的位置为所述目标输出点,同时确定所述探针所对应的参数为所述目标注入参数,同时确定所述探针所对应的参数为所述目标注入参数,并获取所述目标输出点的上下文信息及所述目标输出点的XPath。
可选地,所述第二响应结果包括页面源代码,所述获取模块具体用于:
根据所述虚拟解析器对所述页面源代码进行解析以得到第二解析界面;
检测所述第二解析界面中是否存在所述探针;
若存在,则确定所述探针所在的位置为所述目标输出点,同时确定所述探针所对应的参数为所述目标注入参数,同时确定所述探针所对应的参数为所述目标注入参数,并获取所述目标输出点的上下文信息及所述目标输出点的XPath。
具体地,该用户请求为http请求。
与现有技术相比,本发明实施例中基于虚拟解析的漏洞检测方法及其装置,先对客户端所发送的用户请求插入探针,以获取目标注入参数、目标输出点、目标输出点的上下文信息及目标输出点的XPath,再根据目标输出点的上下文信息构造目标特征值,之后,针对目标注入参数,向Web服务器发送带有所述目标特征值的处理请求,接收Web服务器对处理请求的第一响应结果,并根据虚拟解析器对页面源代码进行解析以得到第一解析页面,最后根据目标输出点的XPath对第一解析页面进行特征值检测以得到XSS漏洞。即,本发明实施例提出了一种结合探针预检测技术定位输出点XPath,并在响应检测阶段通过XPath精确确认XSS漏洞的机制,从而提高了漏洞检测的准确性。
通过以下的描述并结合附图,本发明将变得更加清晰,这些附图用于解释本发明的实施例。
附图说明
图1为本发明基于虚拟解析的漏洞检测方法第一实施例的流程图。
图2为本发明基于虚拟解析的漏洞检测方法第二实施例的流程图。
图3为jsp示例代码界面图。
图4为经虚拟解析的一示例界面图。
图5为经虚拟解析的另一示例界面图。
图6为经虚拟解析的再一示例界面图。
图7为发明基于虚拟解析的漏洞检测装置第一实施例的结构图。
具体实施方式
现在参考附图描述本发明的实施例,附图中类似的元件标号代表类似的元件。
为了更好地理解本发明,先对本发明的原理做如下说明:本发明是一种基于虚拟解析的XSS检测技术,提出一种结合探针预检测技术定位输出点XPath,并在响应检测阶段通过XPath精确确认XSS漏洞的机制。具体包括:(1)探针预检测阶段;(2)精确构造特征值并发送检测请求阶段;(3)响应检测阶段。
请参考图1,是本发明第一实施例的基于虚拟解析漏洞检测方法流程图。如图所示,该方法可以包括如下步骤:
S101,接收客户端所发送的用户请求,该用户请求中包括至少一个参数。
具体地,客户端(浏览器)先将XSS检测工具(即下文中所描述的漏洞检测装置)设置为代理,以用于后续代理客户端向Web服务器发送请求。之后,客户端向XSS检测工具发送用户请求(http请求),XSS检测工具接收该http请求、保存该请求的信息。进一步地,XSS检测工具将http请求发送至Web服务器。
S102,对用户请求插入探针以获取目标注入参数、目标输出点、所述目标输出点的上下文信息及所述目标输出点的XPath。
具体地,用户请求中包括至少一个参数,XSS检测工具对每一个参数插入一探针,并结合探测技术获取目标注入参数、目标输出点、目标输出点的上下文信息及目标输出点的XPath。例如,目标输出点的XPath为html/body/div[@id=’containerDiv’]/a。进一步地,该部分的具体实施过程将在下一实施例中进行详述,故在此不再赘述。
S103,根据目标输出点的上下文信息构造目标特征值。
具体地,XSS检测工具根据目标输出点的上下文信息构造目标特征值,如。“''><div id='999982118890' name='xssTester1001001'>XSSTester</div><a>”
S104,针对目标注入参数,向Web服务器发送带有目标特征值的检测请求。
具体地,针对步骤S102中所得到的目标注入参数,XSS检测工具向Web服务器发送带有目标特征值的检测请求。
S105,接收Web服务器对检测请求的第一响应结果,该第一响应结果包括页面源代码。
具体地,Web服务器接收检测请求,并对其进行响应,进一步地,将响应结果返回至XSS检测工具。
S106,根据虚拟解析器对页面源代码进行解析以得到第一解析页面。
具体地,XSS检测工具采用虚拟解析器(即类浏览器的解析技术)对Web服务器所返回的响应结果进行虚拟解析,从而可以得到第一解析界面。其中,第一解析界面可参考图2。
S107,根据目标输出点的XPath对第一解析页面进行特征值检测以得到XSS漏洞。
具体地,XSS检测工具根据目标输出点的XPath对第一解析页面进行特征值检测以得到XSS漏洞。
本发明实施例中基于虚拟解析的漏洞检测方法,先对客户端所发送的用户请求插入探针,以获取目标注入参数、目标输出点、目标输出点的上下文信息及目标输出点的XPath,再根据目标输出点的上下文信息构造目标特征值,之后,针对目标注入参数,向Web服务器发送带有所述目标特征值的处理请求,接收Web服务器对处理请求的第一响应结果,并根据虚拟解析器对页面源代码进行解析以得到第一解析页面,最后根据目标输出点的XPath对第一解析页面进行特征值检测以得到XSS漏洞。即,本发明实施例提出了一种结合探针预检测技术定位输出点XPath,并在响应检测阶段通过XPath精确确认XSS漏洞的机制,从而提高了漏洞检测的准确性。
请参考图2,是本发明第二实施例的基于虚拟解析漏洞检测方法流程图。如图所示,该方法可以包括如下步骤:
S201,接收客户端所发送的用户请求,该用户请求中包括至少一个参数。
具体地,客户端(浏览器)先将XSS检测工具设置为代理,以用于后续代理客户端向Web服务器发送请求。之后,客户端向XSS检测工具发送用户请求(http请求),XSS检测工具接收该http请求、保存该请求的信息。进一步地,XSS检测工具将http请求发送至Web服务器。
S202,对每一个参数构造检测探针并发送带有检测探针的第一请求至Web服务器,且检测探针具有唯一性。
需要说明的是,检测探针的本质也是一种检测特征值,它的构造符合以下几条规则:(1)全局唯一性;(2)具有一定规则,以便于发现存储型的XSS问题;(3)尽量避免web应用的参数输入校验,减少与检测的失败率。例如,可以采用数字字符作为探针,如“99993679123”,其中“9999”是探针前缀,表示这是个探针,“3679123”是随机数,避免探针值之间产生冲突。
具体地,XSS检测工具对用户请求中的每一个参数都构造一个唯一的探针,并发送带有探针的第一请求至Web服务器。例如,用户请求中有5个参数,则分别为其构造的检测探针可表示为:探针1、探针2、探针3、探针4及探针5,且探针的表现形式如前所述。
S203,接收Web服务器针对第一请求的第二响应结果,并根据第二响应结果获取目标注入参数、目标输出点、目标输出点的上下文信息及目标输出点的XPath。
具体地,在本实施例中,响应结果包括页面源代码。Web服务器接收到带有探针的第一请求之后,将会对其做出响应,并将响应结果返回至XSS检测工具。进一步地,XSS检测工具会先根据虚拟解析器对页面源代码进行解析以得到解析界面,再对解析界面进行分析。如果在页面源代码中检测到探针,则标记此处为可能的XSS输出点(即确定探针所在的位置为目标输出点),同时标记该注入的参数为可能注入的参数(即确定探针所对应的参数为目标注入参数),并获取目标输出点的上下文信息及目标输出点的XPath。
其中,XPath即为XML路径语言,它是一种用来确定XML(标准通用标记语言的子集)文档中某部分位置的语言。XPath基于XML的树状结构,提供在数据结构树中找寻节点的能力。XPath虽然是被设计用来搜寻XML文档的,不过它也能很好的在HTML文档中工作,并且大部分浏览器也支持通过XPath来查询节点。
需要说明的是,现有的XSS漏洞检测方法是对页面源代码进行特征值检测,其不能检测到web页面中嵌入的JavaScript、CSS动态生成的元素的XSS漏洞。而基于类浏览器虚拟解析技术的XSS漏洞检测方法解决了这一问题。但是,基于类浏览器虚拟解析技术的XSS漏洞检测方法仅仅通过对虚拟解析后的响应结果进行文本搜索的方式来查找和确认XSS漏洞。如果输出点做了XSS输出编码保护,经过类浏览器虚拟解析后,得到的将是未做编码前的原文,此时通过对响应结果进行文本搜索的方式来进行特征检测,将会产生大量的XSS误报。因此,本实施例中先结合探针预检测技术定位出输出点的XPath,为后续响应检测阶段通过XPath精确确认XSS漏洞提供基础。
还需要说明的是,虚拟解析技术可以模拟浏览器运行,相当于无界面的浏览器,可以对http请求响应的源代码做JavaScript、html和css的解析。由于其运行不需要界面,运行速度非常迅速。目前业界已经有较为成熟的开源软件库,大多运用在Web应用的自动化测试领域。
进一步地,以下以一个简单的示例说明虚拟解析技术的作用。请参考图3,其是一段简单的jsp示例代码。假设参数传入url的探针值为’www.demo.com’,经过第一步的探针预检测过程,页面响应经过虚拟解析后,可以得到如图4所示下的html页面。从该图中可以得到目标输出点的XPath为html/body/div[@id=’containerDiv’]/a。此外,经过探针预检测后还可以得到输出点的上下文信息。
可选地,在发明实施例的其它可选方式中,步骤S203具体包括对页面源代码进行分析。如果在页面源代码中检测到检测探针,则标记此处为可能的XSS输出点(即确定检测探针所在的位置为目标输出点),同时标记该注入的参数为可能注入的参数(即确定检测探针所对应的参数为目标注入参数),并获取目标输出点的上下文信息及目标输出点的XPath。
S204,根据目标输出点的上下文信息构造目标特征值。
具体地,XSS检测工具根据目标输出点的上下文信息构造目标特征值,如“''><divid='999982118890' name='xssTester1001001'>XSSTester</div><a>”
S205,针对目标注入参数,向Web服务器发送带有目标特征值的检测请求。
具体地,针对步骤S102中所得到的目标注入参数,XSS检测工具向Web服务器发送带有目标特征值的检测请求。
S206,接收Web服务器对检测请求的第一响应结果,该第一响应结果包括页面源代码。
具体地,Web服务器接收检测请求,并对其进行响应,进一步地,将响应结果返回至XSS检测工具。
S207,根据虚拟解析器对页面源代码进行解析以得到第一解析页面。
具体地,XSS检测工具采用类浏览器的解析技术对Web服务器所返回的响应结果进行虚拟解析,从而可以得到第一解析界面。其中,第一解析界面可参考图4。
S208,根据目标输出点的XPath对第一解析页面进行特征值检测以得到XSS漏洞。
具体地,XSS检测工具根据目标输出点的XPath对第一解析页面进行特征值检测以得到XSS漏洞。本步骤即发明原理部分所提及的响应检测阶段。
请参考图5及图6,分别为未做XSS编码保护的、经虚拟解析的界面以及已做XSS编码保护的、经虚拟解析的界面。如果输出点没有做XSS输出编码保护,则特征值将成功注入,如图5所示。如果输出点做了输出编码保护,则响应经过虚拟解析后得到页面的如图6所示,其中第9行中被标注的部分为一个完整的字符串。通过比较图5和图6可以发现,如果仅仅对虚拟解析后的响应做特征值的文本搜索,将不能区分该输出点是否有做XSS输出编码。
虽然在虚拟解析后的页面通过文本搜索特征值的方式不能确认输出点是否做了输出编码,但html结构中注入的特征值在做了输出编码和未做输出编码的情况下将是不同的节点。如果输出点做了输出编码,特征值将出现在文本节点;如果输出点未做输出编码,特征值将出现在标签节点。
本发明实施例将利用这一特性,在响应检测阶段,使用先前探针定位到的XPath,即html/body/div[@id=’containerDiv’]/a,分别得到<a>标签的outerHTML和outerText。如果在outerHTML中检测到了注入的div标签,则说明注入的特征值已经成功注入并生成了div标签。如果在outerHTML中没检测到注入的div标签,而在outerText中检测到了该段特征文本,则说明特征值没有注入成功,即没有发现XSS漏洞。
本发明实施例中基于虚拟解析的漏洞检测方法,先对客户端所发送的用户请求插入探针,以获取目标注入参数、目标输出点、目标输出点的上下文信息及目标输出点的XPath,再根据目标输出点的上下文信息构造目标特征值,之后,针对目标注入参数,向Web服务器发送带有所述目标特征值的处理请求,接收Web服务器对处理请求的第一响应结果,并根据虚拟解析器对页面源代码进行解析以得到第一解析页面,最后根据目标输出点的XPath对第一解析页面进行特征值检测以得到XSS漏洞。即,本发明实施例提出了一种结合探针预检测技术定位输出点XPath,并在响应检测阶段通过XPath精确确认XSS漏洞的机制,从而提高了漏洞检测的准确性。
请参考图7,是本发明第一实施例的基于虚拟解析漏洞检测装置的结构图。如图所示,该漏洞检测装置可以包括:
接收模块10,用于接收客户端所发送的用户请求;
获取模块11,用于对用户请求插入探针以获取目标注入参数、目标输出点、目标输出点的上下文信息及目标输出点的XPath;
构造模块12,用于根据目标输出点的上下文信息构造目标特征值;
发送模块13,用于针对目标注入参数,向Web服务器发送带有目标特征值的检测请求;
接收模块10还用于接收Web服务器对检测请求的第一响应结果,第一响应结果包括页面源代码;
解析模块14,用于根据虚拟解析器对页面源代码进行解析以得到第一解析页面;
检测模块15,用于根据目标输出点的XPath对第一解析页面进行特征值检测以得到XSS漏洞。
具体地,用户请求中包括至少一个参数,获取模块11具体用于:
对每一个参数构造所述探针并发送带有探针的第一请求至Web服务器,且探针具有唯一性;
接收Web服务器针对所述第一请求的第二响应结果,并根据第二响应结果获取目标注入参数、目标输出点、目标输出点的上下文信息及目标输出点的XPath。
可选地,第二响应结果包括页面源代码,获取模块11具体用于:
检测页面源代码中是否存在探针;
若存在,则确定探针所在的位置为目标输出点,同时确定探针所对应的参数为目标注入参数,同时确定探针所对应的参数为目标注入参数,并获取目标输出点的上下文信息及目标输出点的XPath。
可选地,第二响应结果包括页面源代码,获取模块11具体用于:
根据虚拟解析器对页面源代码进行解析以得到第二解析界面;
检测第二解析界面中是否存在探针;
若存在,则确定探针所在的位置为目标输出点,同时确定探针所对应的参数为目标注入参数,同时确定探针所对应的参数为目标注入参数,并获取目标输出点的上下文信息及目标输出点的XPath。
本发明实施例中基于虚拟解析的漏洞检测装置,先通过接收模块10接收客户端所发送的用户请求,通过获取模块11插入探针以获取目标注入参数、目标输出点、目标输出点的上下文信息及目标输出点的XPath,再通过构造模块12根据目标输出点的上下文信息构造目标特征值,之后,针对目标注入参数,通过发送模块13向Web服务器发送带有目标特征值的处理请求,接着,通过接收模块10接收Web服务器对处理请求的第一响应结果,并通过解析模块14根据虚拟解析器对页面源代码进行解析以得到第一解析页面,最后通过检测模块15根据目标输出点的XPath对第一解析页面进行特征值检测以得到XSS漏洞。即,本发明实施例提出了一种结合探针预检测技术定位输出点XPath,并在响应检测阶段通过XPath精确确认XSS漏洞的机制,从而提高了漏洞检测的准确性。
需要说明的是,本发明实施例装置的具体工作流程已在前述方法流程部分做了像是,故在此不再赘述。
以上结合最佳实施例对本发明进行了描述,但本发明并不局限于以上揭示的实施例,而应当涵盖各种根据本发明的本质进行的修改、等效组合。

Claims (10)

1.一种基于虚拟解析的漏洞检测方法,其特征在于,包括:
接收客户端所发送的用户请求;
对所述用户请求插入探针以获取目标注入参数、目标输出点、所述目标输出点的上下文信息及所述目标输出点的XPath;
根据所述目标输出点的上下文信息构造目标特征值;
针对所述目标注入参数,向Web服务器发送带有所述目标特征值的检测请求;
接收所述Web服务器对所述检测请求的第一响应结果,所述第一响应结果包括页面源代码;
根据虚拟解析器对所述页面源代码进行解析以得到第一解析页面;
根据所述目标输出点的XPath对所述第一解析页面进行特征值检测以得到XSS漏洞。
2.如权利要求1所述基于虚拟解析的漏洞检测方法,其特征在于,所述用户请求中包括至少一个参数,对所述用户请求插入探针以获取目标注入参数、目标输出点、所述目标输出点的上下文信息及所述目标输出点的XPath具体包括:
对每一个所述参数构造所述探针并发送带有所述探针的第一请求至所述Web服务器,且所述探针具有唯一性;
接收所述Web服务器针对所述第一请求的第二响应结果,并根据所述第二响应结果获取所述目标注入参数、目标输出点、所述目标输出点的上下文信息及所述目标输出点的XPath。
3.如权利要求2所述基于虚拟解析的漏洞检测方法,其特征在于,所述第二响应结果包括页面源代码,根据所述第二响应结果获取所述目标注入参数、目标输出点、所述目标输出点的上下文信息及所述目标输出点的XPath具体包括:
检测所述页面源代码中是否存在所述探针;
若存在,则确定所述探针所在的位置为所述目标输出点,同时确定所述探针所对应的参数为所述目标注入参数,同时确定所述探针所对应的参数为所述目标注入参数,并获取所述目标输出点的上下文信息及所述目标输出点的XPath。
4.如权利要求2所述基于虚拟解析的漏洞检测方法,其特征在于,所述第二响应结果包括页面源代码,根据所述第二响应结果获取所述目标注入参数、目标输出点、所述目标输出点的上下文信息及所述目标输出点的XPath具体包括:
根据所述虚拟解析器对所述页面源代码进行解析以得到第二解析界面;
检测所述第二解析界面中是否存在所述探针;
若存在,则确定所述探针所在的位置为所述目标输出点,同时确定所述探针所对应的参数为所述目标注入参数,同时确定所述探针所对应的参数为所述目标注入参数,并获取所述目标输出点的上下文信息及所述目标输出点的XPath。
5.如权利要求1所述的基于虚拟解析的漏洞检测方法,其特征在于,所述用户请求为http请求。
6.一种基于虚拟解析的漏洞检测装置,其特征在于,包括:
接收模块,用于接收客户端所发送的用户请求;
获取模块,用于对所述用户请求插入探针以获取目标注入参数、目标输出点、所述目标输出点的上下文信息及所述目标输出点的XPath;
构造模块,用于根据所述目标输出点的上下文信息构造目标特征值;
发送模块,用于针对所述目标注入参数,向Web服务器发送带有所述目标特征值的检测请求;
所述接收模块还用于接收所述Web服务器对所述检测请求的第一响应结果,所述第一响应结果包括页面源代码;
解析模块,用于根据虚拟解析器对所述页面源代码进行解析以得到第一解析页面;
检测模块,用于根据所述目标输出点的XPath对所述第一解析页面进行特征值检测以得到XSS漏洞。
7.如权利要求6所述基于虚拟解析的漏洞检测装置,其特征在于,所述用户请求中包括至少一个参数,所述获取模块具体用于:
对每一个所述参数构造所述探针并发送带有所述探针的第一请求至Web服务器,且所述探针具有唯一性;
接收所述Web服务器针对所述第一请求的第二响应结果,并根据所述第二响应结果获取所述目标注入参数、目标输出点、所述目标输出点的上下文信息及所述目标输出点的XPath。
8.如权利要求7所述基于虚拟解析的漏洞检测装置,其特征在于,所述第二响应结果包括页面源代码,所述获取模块具体用于:
检测所述页面源代码中是否存在所述探针;
若存在,则确定所述探针所在的位置为所述目标输出点,同时确定所述探针所对应的参数为所述目标注入参数,同时确定所述探针所对应的参数为所述目标注入参数,并获取所述目标输出点的上下文信息及所述目标输出点的XPath。
9.如权利要求7所述基于虚拟解析的漏洞检测装置,其特征在于,所述第二响应结果包括页面源代码,所述获取模块具体用于:
根据所述虚拟解析器对所述页面源代码进行解析以得到第二解析界面;
检测所述第二解析界面中是否存在所述探针;
若存在,则确定所述探针所在的位置为所述目标输出点,同时确定所述探针所对应的参数为所述目标注入参数,同时确定所述探针所对应的参数为所述目标注入参数,并获取所述目标输出点的上下文信息及所述目标输出点的XPath。
10.如权利要求6所述的基于虚拟解析的漏洞检测装置,其特征在于,所述用户请求为http请求。
CN201710028970.6A 2017-01-16 2017-01-16 一种基于虚拟解析的漏洞检测方法及其装置 Active CN106909846B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710028970.6A CN106909846B (zh) 2017-01-16 2017-01-16 一种基于虚拟解析的漏洞检测方法及其装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710028970.6A CN106909846B (zh) 2017-01-16 2017-01-16 一种基于虚拟解析的漏洞检测方法及其装置

Publications (2)

Publication Number Publication Date
CN106909846A true CN106909846A (zh) 2017-06-30
CN106909846B CN106909846B (zh) 2020-04-24

Family

ID=59206974

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710028970.6A Active CN106909846B (zh) 2017-01-16 2017-01-16 一种基于虚拟解析的漏洞检测方法及其装置

Country Status (1)

Country Link
CN (1) CN106909846B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107948163A (zh) * 2017-11-29 2018-04-20 中科信息安全共性技术国家工程研究中心有限公司 一种xml注入漏洞检测与防御方法
CN108830082A (zh) * 2018-05-24 2018-11-16 东南大学 一种基于输出点位置的xss漏洞检测参数自动选取方法
CN109062785A (zh) * 2018-07-06 2018-12-21 北京大学 接口参数约束代码定位方法与系统
CN110113311A (zh) * 2019-03-05 2019-08-09 北京丁牛科技有限公司 跨站脚本攻击xss漏洞检测方法及装置
CN110908357A (zh) * 2019-10-23 2020-03-24 深圳开源互联网安全技术有限公司 一种安全漏洞检测方法、装置、存储介质和智能设备
CN113158197A (zh) * 2021-05-26 2021-07-23 北京安普诺信息技术有限公司 一种基于主动iast的sql注入漏洞检测方法、系统

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103026684A (zh) * 2010-07-22 2013-04-03 国际商业机器公司 跨站脚本攻击保护
CN103095681A (zh) * 2012-12-03 2013-05-08 微梦创科网络科技(中国)有限公司 一种检测漏洞的方法及装置
CN104794396A (zh) * 2014-01-16 2015-07-22 腾讯科技(深圳)有限公司 跨站式脚本漏洞检测方法及装置
CN105160256A (zh) * 2015-08-10 2015-12-16 上海斐讯数据通信技术有限公司 一种检测web页面漏洞的方法及系统
CN105678170A (zh) * 2016-01-05 2016-06-15 广东工业大学 一种动态检测xss漏洞的方法
CN106022135A (zh) * 2016-02-23 2016-10-12 北京工业大学 一种可动态判断xss漏洞的自动化检测系统
WO2016168428A1 (en) * 2015-04-15 2016-10-20 Qatar Foundation For Education, Science And Community Development Cross-site scripting detection method
CN106302337A (zh) * 2015-05-22 2017-01-04 腾讯科技(深圳)有限公司 漏洞检测方法和装置
CN106302481A (zh) * 2016-08-19 2017-01-04 中国银联股份有限公司 检测WebSocket跨站请求伪造漏洞的方法和装置

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103026684A (zh) * 2010-07-22 2013-04-03 国际商业机器公司 跨站脚本攻击保护
CN103095681A (zh) * 2012-12-03 2013-05-08 微梦创科网络科技(中国)有限公司 一种检测漏洞的方法及装置
CN104794396A (zh) * 2014-01-16 2015-07-22 腾讯科技(深圳)有限公司 跨站式脚本漏洞检测方法及装置
WO2016168428A1 (en) * 2015-04-15 2016-10-20 Qatar Foundation For Education, Science And Community Development Cross-site scripting detection method
CN106302337A (zh) * 2015-05-22 2017-01-04 腾讯科技(深圳)有限公司 漏洞检测方法和装置
CN105160256A (zh) * 2015-08-10 2015-12-16 上海斐讯数据通信技术有限公司 一种检测web页面漏洞的方法及系统
CN105678170A (zh) * 2016-01-05 2016-06-15 广东工业大学 一种动态检测xss漏洞的方法
CN106022135A (zh) * 2016-02-23 2016-10-12 北京工业大学 一种可动态判断xss漏洞的自动化检测系统
CN106302481A (zh) * 2016-08-19 2017-01-04 中国银联股份有限公司 检测WebSocket跨站请求伪造漏洞的方法和装置

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107948163A (zh) * 2017-11-29 2018-04-20 中科信息安全共性技术国家工程研究中心有限公司 一种xml注入漏洞检测与防御方法
CN108830082A (zh) * 2018-05-24 2018-11-16 东南大学 一种基于输出点位置的xss漏洞检测参数自动选取方法
CN108830082B (zh) * 2018-05-24 2022-05-10 东南大学 一种基于输出点位置的xss漏洞检测参数自动选取方法
CN109062785A (zh) * 2018-07-06 2018-12-21 北京大学 接口参数约束代码定位方法与系统
CN110113311A (zh) * 2019-03-05 2019-08-09 北京丁牛科技有限公司 跨站脚本攻击xss漏洞检测方法及装置
CN110908357A (zh) * 2019-10-23 2020-03-24 深圳开源互联网安全技术有限公司 一种安全漏洞检测方法、装置、存储介质和智能设备
CN110908357B (zh) * 2019-10-23 2020-12-15 深圳开源互联网安全技术有限公司 一种安全漏洞检测方法、装置、存储介质和智能设备
CN113158197A (zh) * 2021-05-26 2021-07-23 北京安普诺信息技术有限公司 一种基于主动iast的sql注入漏洞检测方法、系统

Also Published As

Publication number Publication date
CN106909846B (zh) 2020-04-24

Similar Documents

Publication Publication Date Title
CN106909846A (zh) 一种基于虚拟解析的漏洞检测方法及其装置
JP5497173B2 (ja) Xss検出方法および装置
US9507870B2 (en) System, method and computer readable medium for binding authored content to the events used to generate the content
US8601434B2 (en) Method and system for information processing and test case generation
CN101902470B (zh) 一种基于表单特征的Web安全漏洞动态检测方法
CN107832622B (zh) 漏洞检测方法、装置、计算机设备及存储介质
CN104881608A (zh) 一种基于模拟浏览器行为的xss漏洞检测方法
CN104021154B (zh) 一种在浏览器中进行搜索的方法和装置
CN105631340B (zh) 一种xss漏洞检测的方法及装置
CN106603572A (zh) 一种基于探针的漏洞检测方法及其装置
WO2015188604A1 (zh) 钓鱼网页的检测方法和装置
CN110392024A (zh) 一种网页检测方法与扫描引擎置
US20160127409A1 (en) Web service testing
CN106650454A (zh) 一种sql注入攻击检测方法和装置
CN115186274A (zh) 基于iast的安全测试方法及装置
CN111190572A (zh) 页面埋点数据的可视化方法、装置、电子设备及存储介质
JP4170243B2 (ja) ウェブアプリケーション検査装置
CN103390129B (zh) 检测统一资源定位符安全性的方法和装置
CN107392027A (zh) 一种网站漏洞测试方法、测试系统、电子设备及存储介质
CN104375935A (zh) Sql注入攻击的测试方法和装置
CN106897624A (zh) 一种漏洞检测方法及其装置
CN106993016A (zh) 网络请求及响应的处理方法和装置
JP5588845B2 (ja) 不正ドメイン検知装置、不正ドメイン検知方法、およびプログラム
CN106789951A (zh) 一种网络web页面异常检测实现系统
KR20200066778A (ko) 코드 커버리지 측정 장치, 코드 커버리지 측정 장치의 코드 커버리지 측정 방법, 및 코드 커버리지 측정 시스템

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