CN113612745A - 一种漏洞检测方法、系统、设备以及介质 - Google Patents
一种漏洞检测方法、系统、设备以及介质 Download PDFInfo
- Publication number
- CN113612745A CN113612745A CN202110837754.2A CN202110837754A CN113612745A CN 113612745 A CN113612745 A CN 113612745A CN 202110837754 A CN202110837754 A CN 202110837754A CN 113612745 A CN113612745 A CN 113612745A
- Authority
- CN
- China
- Prior art keywords
- page
- detected
- source code
- preset
- path
- 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
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 37
- 238000013515 script Methods 0.000 claims abstract description 78
- 239000000725 suspension Substances 0.000 claims abstract description 43
- 238000004088 simulation Methods 0.000 claims abstract description 21
- 230000004044 response Effects 0.000 claims abstract description 12
- 238000000034 method Methods 0.000 claims description 28
- 238000002347 injection Methods 0.000 claims description 18
- 239000007924 injection Substances 0.000 claims description 18
- 230000008569 process Effects 0.000 claims description 15
- 238000004590 computer program Methods 0.000 claims description 10
- 235000014347 soups Nutrition 0.000 description 5
- 238000012360 testing method Methods 0.000 description 4
- 230000001960 triggered effect Effects 0.000 description 4
- BUGBHKTXTAQXES-UHFFFAOYSA-N Selenium Chemical compound [Se] BUGBHKTXTAQXES-UHFFFAOYSA-N 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 229910052711 selenium Inorganic materials 0.000 description 3
- 239000011669 selenium Substances 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 239000000243 solution Substances 0.000 description 2
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000009472 formulation Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1433—Vulnerability analysis
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种漏洞检测方法,包括以下步骤:获取待测系统中的每一个待检测页面的路径,并根据路径向服务端请求每一个待检测页面;遍历每一个待检测页面的源码以查找包括预设标签的第一源码;在每一个第一源码的预设标签对应的输入框中注入恶意脚本并将恶意脚本发送到服务端;根据不包括预设标签的源码对应的路径重新向服务端请求相应的待检测页面,并在每一个重新请求得到的新页面上搜索预设页面元素;响应于搜索到预设页面元素,触发模拟悬浮;基于触发模拟悬浮后的新页面的源码中是否存在恶意脚本确定待检测系统中是否存在漏洞。本发明还公开了一种系统、计算机设备以及存储介质。本发明提出的方案能够实现悬浮触发式XSS漏洞的自动化检测。
Description
技术领域
本发明涉及漏洞检测领域,具体涉及一种漏洞检测方法、系统、设备以及存储介质。
背景技术
HTML是一种超文本标记语言,通过将一些字符特殊地对待来区别文本和标记,例如,小于符号(<)被看作是HTML标签的开始,<title>与</title>之间的字符是页面的标题等等。当动态页面中插入的内容含有这些特殊字符(如<)时,用户浏览器会将其误认为是插入了HTML标签,当这些HTML标签引入了一段JavaScript脚本时,这些脚本程序就将会在用户浏览器中执行。所以,当这些特殊字符不能被动态页面检查或检查出现失误时,就将会产生XSS漏洞。
从攻击代码的工作方式可以分为三个类型:
(1)存储型XSS(也称存储型、常驻型XSS):最直接的危害类型,跨站代码存储在服务器(数据库)。
(2)反射型XSS:最普遍的类型。用户访问服务器-跨站链接-返回跨站代码。
(3)DOM型XSS:DOM(document object model文档对象模型)类型,客户端脚本处理逻辑导致的安全问题。
悬浮触发式XSS漏洞是存储型XSS漏洞的一种变体,当输入文字过长时,超出Web页面元素显示宽度时会以省略号结尾,此时需要通过鼠标悬浮来显示完整内容。如果注入的恶意代码没有超过页面元素显示宽度(即不需要悬浮显示完整内容),则XSS漏洞不会触发,只有当恶意代码超过显示宽度时,通过鼠标悬浮显示才会触发XSS漏洞,比如alert弹窗。因此,悬浮触发式漏洞不是常规的存储型XSS漏洞,是一种变体,且无法通过常规的自动化检测方法检测。
发明内容
有鉴于此,为了克服上述问题的至少一个方面,本发明实施例提出一种漏洞检测方法,包括以下步骤:
获取待测系统中的每一个待检测页面的路径,并根据所述路径向服务端请求每一个待检测页面;
遍历每一个待检测页面的源码以查找包括预设标签的第一源码;
在每一个第一源码的预设标签对应的输入框中注入恶意脚本并将所述恶意脚本发送到所述服务端;
根据不包括所述预设标签的源码对应的路径重新向所述服务端请求相应的待检测页面,并在每一个重新请求得到的新页面上搜索预设页面元素;
响应于搜索到预设页面元素,触发模拟悬浮;
基于触发模拟悬浮后的新页面的源码中是否存在恶意脚本确定所述待检测系统中是否存在漏洞。
在一些实施例中,获取待测系统中的每一个待检测页面的路径,并根据所述路径向服务端请求每一个待检测页面,进一步包括:
探测所述待测系统的每一个待检测页面的路径并将探测得到的每一个路径保存在第一数组中;
遍历所述第一数组中的每一个路径并在遍历过程中请求每一个路径对应的待检测页面。
在一些实施例中,遍历每一个待检测页面的源码以查找包括预设标签的第一源码,进一步包括:
获取每一个待检测页面的源码并将得到的每一个待检测页面对应的源码保存到第二数组中;
遍历所述第二数组中的每一个源码以将每一个源码转换成预设格式;
对转换成预设格式的每一个源码进行解析以判断是否存在预设标签;
将转换成预设格式的多个源码中存在预设标签的第一源码保存到第三数组中。
在一些实施例中,在每一个第一源码的预设标签对应的输入框中注入恶意脚本并将所述恶意脚本发送到所述服务端,进一步包括:
遍历第三数组以将恶意脚本注入到所述第三数组中每一个第一源码的预设标签对应的输入框中。
在一些实施例中,根据不包括所述预设标签的源码对应的路径重新向所述服务端请求相应的待检测页面,并在每一个重新请求得到的新页面上搜索预设页面元素,进一步包括:
将不包括所述预设标签的源码对应的待检测页面的路径保存到第四数组中;
遍历所述第四数组中的每一个路径并在遍历过程中重新向所述服务端请求新页面,以在每一个新页面上搜索预设页面元素。
在一些实施例中,响应于搜索到预设页面元素,触发模拟悬浮,进一步包括:
响应于搜索到页面元素,模拟鼠标悬停在所述预设页面元素上;
将触发悬停后的新页面的源码保存到第五数组中。
在一些实施例中,基于触发模拟悬浮后的新页面的源码中是否存在恶意脚本确定所述待检测系统中是否存在漏洞,进一步包括:
遍历所述第五数组以将第五数组中的每一个源码转换成预设格式;
判断转换成预设格式的源码中是否存在所述恶意脚本;
响应于存在恶意脚本,确定所述待检测系统中存在漏洞。
基于同一发明构思,根据本发明的另一个方面,本发明的实施例还提供了一种漏洞检测系统,包括:
获取模块,配置为获取待测系统中的每一个待检测页面的路径,并根据所述路径向服务端请求每一个待检测页面;
查找模块,配置为遍历每一个待检测页面的源码以查找包括预设标签的第一源码;
注入模块,配置为在每一个第一源码的预设标签对应的输入框中注入恶意脚本并将所述恶意脚本发送到所述服务端;
搜索模块,配置为根据不包括所述预设标签的源码对应的路径重新向所述服务端请求相应的待检测页面,并在每一个重新请求得到的新页面上搜索预设页面元素;
触发模块,配置为响应于搜索到预设页面元素,触发模拟悬浮;
确定模块,配置为基于触发模拟悬浮后的新页面的源码中是否存在恶意脚本确定所述待检测系统中是否存在漏洞。
基于同一发明构思,根据本发明的另一个方面,本发明的实施例还提供了一种计算机设备,包括:
至少一个处理器;以及
存储器,所述存储器存储有可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时执行如上所述的任一种漏洞检测方法的步骤。
基于同一发明构思,根据本发明的另一个方面,本发明的实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时执行如上所述的任一种漏洞检测方法的步骤。
本发明具有以下有益技术效果之一:本发明提出的方案能够实现悬浮触发式XSS漏洞的自动化检测,提高了检测效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
图1为本发明的实施例提供的漏洞检测方法的流程示意图;
图2为本发明的实施例提供的漏洞检测系统的结构示意图;
图3为本发明的实施例提供的计算机设备的结构示意图;
图4为本发明的实施例提供的计算机可读存储介质的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。
在本发明的实施例中,XSS指跨站脚本攻击(Cross Site Scripting),原本应当是css,但为了和层叠样式表(Cascading Style Sheet,CSS)有所区分,故称XSS;
Javascript:简称“JS”,是一种具有函数优先的轻量级,解释型或即时编译型的编程语言。
Vue.js:是一套用于构建用户界面的渐进式Javascript框架。
Python:是一种跨平台的计算机程序设计语言,是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越多被用于独立的、大型项目的开发。
selenium是一个用于Web应用程序自动化测试工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。
Beautiful Soup是一个可以从HTML或XML文件中提取数据的Python库,它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式
URL指在WWW上,每一信息资源都有统一的且在网上唯一的地址,该地址就叫URL(Uniform Resource Locator,统一资源定位器),它是WWW的统一资源定位标志。
根据本发明的一个方面,本发明的实施例提出一种漏洞检测方法,如图1所示,其可以包括步骤:
S1,获取待测系统中的每一个待检测页面的路径,并根据所述路径向服务端请求每一个待检测页面;
S2,遍历每一个待检测页面的源码以查找包括预设标签的第一源码;
S3,在每一个第一源码的预设标签对应的输入框中注入恶意脚本并将所述恶意脚本发送到所述服务端;
S4,根据不包括所述预设标签的源码对应的路径重新向所述服务端请求相应的待检测页面,并在每一个重新请求得到的新页面上搜索预设页面元素;
S5,响应于搜索到预设页面元素,触发模拟悬浮;
S6,基于触发模拟悬浮后的新页面的源码中是否存在恶意脚本确定所述待检测系统中是否存在漏洞。
本发明提出的方案能够实现悬浮触发式XSS漏洞的自动化检测,提高了检测效率。
在一些实施例中,步骤S1,获取待测系统中的每一个待检测页面的路径,并根据所述路径向服务端请求每一个待检测页面,进一步包括:
探测所述待测系统的每一个待检测页面的路径并将探测得到的每一个路径保存在第一数组中;
遍历所述第一数组中的每一个路径并在遍历过程中请求每一个路径对应的待检测页面。
在一些实施例中,步骤S2,遍历每一个待检测页面的源码以查找包括预设标签的第一源码,进一步包括:
获取每一个待检测页面的源码并将得到的每一个待检测页面对应的源码保存到第二数组中;
遍历所述第二数组中的每一个源码以将每一个源码转换成预设格式;
对转换成预设格式的每一个源码进行解析以判断是否存在预设标签;
将转换成预设格式的多个源码中存在预设标签的第一源码保存到第三数组中。
在一些实施例中,步骤S3,在每一个第一源码的预设标签对应的输入框中注入恶意脚本并将所述恶意脚本发送到所述服务端,进一步包括:
遍历第三数组以将恶意脚本注入到所述第三数组中每一个第一源码的预设标签对应的输入框中。
具体的,可以通过自动注入模块实现恶意脚本的注入,该模块可以采用Python的selenium库模拟浏览器行为,可根据测试意图通过webdriver模块准确识别页面中的多个输入点中的可注入点,并在注入点中完成Javascript恶意脚本的注入。
其中,自动注入模块可以包括注入标签模板制定单元、页面探测单元、注入定位单元、注入提交单元。
注入标签模板制定单元可录入注入点的HTML标签模板,比如textarea标签作为注入标签,则在下一步中仅探测包含textarea标签的源码。
页面探测单元可以探测被测系统的所有Web页面的URL路径,并将所有的URL路径存入数组A中。然后遍历数组A的URL路径,在遍历过程中请求每个URL对应的页面,并得到每一个页面后,可以在获取web页面的源码并分别存入数组B中。
注入定位单元可遍历数组B,将页面源码转为预设格式的Beautiful Soup对象,并进行解析,根据注入模块判断是否存在指定的预设标签(例如textarea标签),若存在则将其源码放入数组C中,作为注入点准备注入。
注入提交单元可遍历数组C,查找预设标签的输入框所在的form表单,然后将恶意脚本注入到form表单中与预设标签对应的输入框中,表单中的其他字段可以随机写入数据,然后将表单中内容通过post请求发送到根据form表单确定的服务端API地址中。完成提交后如果再次向服务端请求不包括预设标签的源码对应的页面,得到的新的页面的源码中就有可能存在恶意脚本。因此,可以将不包括预设标签的源码对应的页面的URL放入数组D中。
需要说明的是,恶意脚本可以在恶意脚本模块中获取。恶意脚本模块中录入了多个可能造成XSS的恶意Javascript脚本,以便提高XSS漏洞的检测精度,如<img src=#onerror=alert(/xssxss/)>,注意两个斜杠中间的字符长度要大于200,以达到超长显示省略号的目的。
在一些实施例中,步骤S4,根据不包括所述预设标签的源码对应的路径重新向所述服务端请求相应的待检测页面,并在每一个重新请求得到的新页面上搜索预设页面元素,进一步包括:
将不包括所述预设标签的源码对应的待检测页面的路径保存到第四数组中;
遍历所述第四数组中的每一个路径并在遍历过程中重新向所述服务端请求新页面,以在每一个新页面上搜索预设页面元素。
在一些实施例中,步骤S5,响应于搜索到预设页面元素,触发模拟悬浮,进一步包括:
响应于搜索到页面元素,模拟鼠标悬停在所述预设页面元素上;
将触发悬停后的新页面的源码保存到第五数组中。
在一些实施例中,步骤S6,基于触发模拟悬浮后的新页面的源码中是否存在恶意脚本确定所述待检测系统中是否存在漏洞,进一步包括:
遍历所述第五数组以将第五数组中的每一个源码转换成预设格式;
判断转换成预设格式的源码中是否存在所述恶意脚本;
响应于存在恶意脚本,确定所述待检测系统中存在漏洞。
具体的,可以通过悬浮触发模块实现悬浮触发,该模块采用Python的selenium库模拟浏览器行为,可根据测试意图通过webdriver模块准确定位悬浮位置,并通过ActionChains模块自动模拟鼠标悬浮,实现触发悬浮的目的。
其中,悬浮触发模块可以包括悬浮标签模板制定单元、悬浮识别单元、悬浮触发单元。
悬浮标签模板制定单元可录入识别能否悬浮的页面元素,比如,Element-UI的el-tooltip元素。
悬浮识别单元可通过遍历数组D的URL,请求新页面,然后对新的页面上的预设页面元素进行悬浮显示。以Element-UI的el-tooltip元素为例,当识别到el-tooltip页面元素时,即认为该页面元素的文本内容可实现悬浮显示,则可通过悬浮触发单元触发。
悬浮触发单元可通过ActionChains模块的move_to_element方法实现模拟鼠标悬停在对应的页面元素上,以触发悬浮。此时将触发悬浮后的页面源码放入数组E中。
接着,可以通过漏洞检测模块进行漏洞检测,漏洞检测模块以恶意脚本模块中的恶意Javascript脚本内容作为识别标志。通过检测源码中是否存在HTML可解析的恶意Javascript完整脚本判断是否存在XSS漏洞。例如,通过遍历数组E,将页面源码转为Beautiful Soup对象,并解析页面。通过Beautiful Soup对象的find方法检测页面源码中是否存在HTML可解析的恶意Javascript完整脚本。若存在,则表明存在XSS漏洞,否则不存在XSS漏洞。
本发明提出的方案能够实现悬浮触发式XSS漏洞的自动化检测,提高了检测效率。
基于同一发明构思,根据本发明的另一个方面,本发明的实施例还提供了一种漏洞检测系统400,如图2所示,包括:
获取模块401,配置为获取待测系统中的每一个待检测页面的路径,并根据所述路径向服务端请求每一个待检测页面;
查找模块402,配置为遍历每一个待检测页面的源码以查找包括预设标签的第一源码;
注入模块403,配置为在每一个第一源码的预设标签对应的输入框中注入恶意脚本并将所述恶意脚本发送到所述服务端;
搜索模块404,配置为根据不包括所述预设标签的源码对应的路径重新向所述服务端请求相应的待检测页面,并在每一个重新请求得到的新页面上搜索预设页面元素;
触发模块405,配置为响应于搜索到预设页面元素,触发模拟悬浮;
确定模块406,配置为基于触发模拟悬浮后的新页面的源码中是否存在恶意脚本确定所述待检测系统中是否存在漏洞。
在一些实施例中,获取待测系统中的每一个待检测页面的路径,并根据所述路径向服务端请求每一个待检测页面,进一步包括:
探测所述待测系统的每一个待检测页面的路径并将探测得到的每一个路径保存在第一数组中;
遍历所述第一数组中的每一个路径并在遍历过程中请求每一个路径对应的待检测页面。
在一些实施例中,遍历每一个待检测页面的源码以查找包括预设标签的第一源码,进一步包括:
获取每一个待检测页面的源码并将得到的每一个待检测页面对应的源码保存到第二数组中;
遍历所述第二数组中的每一个源码以将每一个源码转换成预设格式;
对转换成预设格式的每一个源码进行解析以判断是否存在预设标签;
将转换成预设格式的多个源码中存在预设标签的第一源码保存到第三数组中。
在一些实施例中,在每一个第一源码的预设标签对应的输入框中注入恶意脚本并将所述恶意脚本发送到所述服务端,进一步包括:
遍历第三数组以将恶意脚本注入到所述第三数组中每一个第一源码的预设标签对应的输入框中。
在一些实施例中,根据不包括所述预设标签的源码对应的路径重新向所述服务端请求相应的待检测页面,并在每一个重新请求得到的新页面上搜索预设页面元素,进一步包括:
将不包括所述预设标签的源码对应的待检测页面的路径保存到第四数组中;
遍历所述第四数组中的每一个路径并在遍历过程中重新向所述服务端请求新页面,以在每一个新页面上搜索预设页面元素。
在一些实施例中,响应于搜索到预设页面元素,触发模拟悬浮,进一步包括:
响应于搜索到页面元素,模拟鼠标悬停在所述预设页面元素上;
将触发悬停后的新页面的源码保存到第五数组中。
在一些实施例中,基于触发模拟悬浮后的新页面的源码中是否存在恶意脚本确定所述待检测系统中是否存在漏洞,进一步包括:
遍历所述第五数组以将第五数组中的每一个源码转换成预设格式;
判断转换成预设格式的源码中是否存在所述恶意脚本;
响应于存在恶意脚本,确定所述待检测系统中存在漏洞。
本发明提出的方案能够实现悬浮触发式XSS漏洞的自动化检测,提高了检测效率。
基于同一发明构思,根据本发明的另一个方面,如图3所示,本发明的实施例还提供了一种计算机设备501,包括:
至少一个处理器520;以及
存储器510,存储器510存储有可在处理器上运行的计算机程序511,处理器520执行程序时执行以下步骤:
获取待测系统中的每一个待检测页面的路径,并根据所述路径向服务端请求每一个待检测页面;
遍历每一个待检测页面的源码以查找包括预设标签的第一源码;
在每一个第一源码的预设标签对应的输入框中注入恶意脚本并将所述恶意脚本发送到所述服务端;
根据不包括所述预设标签的源码对应的路径重新向所述服务端请求相应的待检测页面,并在每一个重新请求得到的新页面上搜索预设页面元素;
响应于搜索到预设页面元素,触发模拟悬浮;
基于触发模拟悬浮后的新页面的源码中是否存在恶意脚本确定所述待检测系统中是否存在漏洞。
在一些实施例中,获取待测系统中的每一个待检测页面的路径,并根据所述路径向服务端请求每一个待检测页面,进一步包括:
探测所述待测系统的每一个待检测页面的路径并将探测得到的每一个路径保存在第一数组中;
遍历所述第一数组中的每一个路径并在遍历过程中请求每一个路径对应的待检测页面。
在一些实施例中,遍历每一个待检测页面的源码以查找包括预设标签的第一源码,进一步包括:
获取每一个待检测页面的源码并将得到的每一个待检测页面对应的源码保存到第二数组中;
遍历所述第二数组中的每一个源码以将每一个源码转换成预设格式;
对转换成预设格式的每一个源码进行解析以判断是否存在预设标签;
将转换成预设格式的多个源码中存在预设标签的第一源码保存到第三数组中。
在一些实施例中,在每一个第一源码的预设标签对应的输入框中注入恶意脚本并将所述恶意脚本发送到所述服务端,进一步包括:
遍历第三数组以将恶意脚本注入到所述第三数组中每一个第一源码的预设标签对应的输入框中。
在一些实施例中,根据不包括所述预设标签的源码对应的路径重新向所述服务端请求相应的待检测页面,并在每一个重新请求得到的新页面上搜索预设页面元素,进一步包括:
将不包括所述预设标签的源码对应的待检测页面的路径保存到第四数组中;
遍历所述第四数组中的每一个路径并在遍历过程中重新向所述服务端请求新页面,以在每一个新页面上搜索预设页面元素。
在一些实施例中,响应于搜索到预设页面元素,触发模拟悬浮,进一步包括:
响应于搜索到页面元素,模拟鼠标悬停在所述预设页面元素上;
将触发悬停后的新页面的源码保存到第五数组中。
在一些实施例中,基于触发模拟悬浮后的新页面的源码中是否存在恶意脚本确定所述待检测系统中是否存在漏洞,进一步包括:
遍历所述第五数组以将第五数组中的每一个源码转换成预设格式;
判断转换成预设格式的源码中是否存在所述恶意脚本;
响应于存在恶意脚本,确定所述待检测系统中存在漏洞。
本发明提出的方案能够实现悬浮触发式XSS漏洞的自动化检测,提高了检测效率。
基于同一发明构思,根据本发明的另一个方面,如图4所示,本发明的实施例还提供了一种计算机可读存储介质601,计算机可读存储介质601存储有计算机程序指令610,计算机程序指令610被处理器执行时执行以下步骤:
获取待测系统中的每一个待检测页面的路径,并根据所述路径向服务端请求每一个待检测页面;
遍历每一个待检测页面的源码以查找包括预设标签的第一源码;
在每一个第一源码的预设标签对应的输入框中注入恶意脚本并将所述恶意脚本发送到所述服务端;
根据不包括所述预设标签的源码对应的路径重新向所述服务端请求相应的待检测页面,并在每一个重新请求得到的新页面上搜索预设页面元素;
响应于搜索到预设页面元素,触发模拟悬浮;
基于触发模拟悬浮后的新页面的源码中是否存在恶意脚本确定所述待检测系统中是否存在漏洞。
在一些实施例中,获取待测系统中的每一个待检测页面的路径,并根据所述路径向服务端请求每一个待检测页面,进一步包括:
探测所述待测系统的每一个待检测页面的路径并将探测得到的每一个路径保存在第一数组中;
遍历所述第一数组中的每一个路径并在遍历过程中请求每一个路径对应的待检测页面。
在一些实施例中,遍历每一个待检测页面的源码以查找包括预设标签的第一源码,进一步包括:
获取每一个待检测页面的源码并将得到的每一个待检测页面对应的源码保存到第二数组中;
遍历所述第二数组中的每一个源码以将每一个源码转换成预设格式;
对转换成预设格式的每一个源码进行解析以判断是否存在预设标签;
将转换成预设格式的多个源码中存在预设标签的第一源码保存到第三数组中。
在一些实施例中,在每一个第一源码的预设标签对应的输入框中注入恶意脚本并将所述恶意脚本发送到所述服务端,进一步包括:
遍历第三数组以将恶意脚本注入到所述第三数组中每一个第一源码的预设标签对应的输入框中。
在一些实施例中,根据不包括所述预设标签的源码对应的路径重新向所述服务端请求相应的待检测页面,并在每一个重新请求得到的新页面上搜索预设页面元素,进一步包括:
将不包括所述预设标签的源码对应的待检测页面的路径保存到第四数组中;
遍历所述第四数组中的每一个路径并在遍历过程中重新向所述服务端请求新页面,以在每一个新页面上搜索预设页面元素。
在一些实施例中,响应于搜索到预设页面元素,触发模拟悬浮,进一步包括:
响应于搜索到页面元素,模拟鼠标悬停在所述预设页面元素上;
将触发悬停后的新页面的源码保存到第五数组中。
在一些实施例中,基于触发模拟悬浮后的新页面的源码中是否存在恶意脚本确定所述待检测系统中是否存在漏洞,进一步包括:
遍历所述第五数组以将第五数组中的每一个源码转换成预设格式;
判断转换成预设格式的源码中是否存在所述恶意脚本;
响应于存在恶意脚本,确定所述待检测系统中存在漏洞。
本发明提出的方案能够实现悬浮触发式XSS漏洞的自动化检测,提高了检测效率。
最后需要说明的是,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关硬件来完成,程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。
此外,应该明白的是,本文的计算机可读存储介质(例如,存储器)可以是易失性存储器或非易失性存储器,或者可以包括易失性存储器和非易失性存储器两者。
本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件和软件的这种可互换性,已经就各种示意性组件、方块、模块、电路和步骤的功能对其进行了一般性的描述。这种功能是被实现为软件还是被实现为硬件取决于具体应用以及施加给整个系统的设计约束。本领域技术人员可以针对每种具体应用以各种方式来实现的功能,但是这种实现决定不应被解释为导致脱离本发明实施例公开的范围。
以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。
应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。
上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。
Claims (10)
1.一种漏洞检测方法,其特征在于,包括以下步骤:
获取待测系统中的每一个待检测页面的路径,并根据所述路径向服务端请求每一个待检测页面;
遍历每一个待检测页面的源码以查找包括预设标签的第一源码;
在每一个第一源码的预设标签对应的输入框中注入恶意脚本并将所述恶意脚本发送到所述服务端;
根据不包括所述预设标签的源码对应的路径重新向所述服务端请求相应的待检测页面,并在每一个重新请求得到的新页面上搜索预设页面元素;
响应于搜索到预设页面元素,触发模拟悬浮;
基于触发模拟悬浮后的新页面的源码中是否存在恶意脚本确定所述待检测系统中是否存在漏洞。
2.如权利要求1所述的方法,其特征在于,获取待测系统中的每一个待检测页面的路径,并根据所述路径向服务端请求每一个待检测页面,进一步包括:
探测所述待测系统的每一个待检测页面的路径并将探测得到的每一个路径保存在第一数组中;
遍历所述第一数组中的每一个路径并在遍历过程中请求每一个路径对应的待检测页面。
3.如权利要求2所述的方法,其特征在于,遍历每一个待检测页面的源码以查找包括预设标签的第一源码,进一步包括:
获取每一个待检测页面的源码并将得到的每一个待检测页面对应的源码保存到第二数组中;
遍历所述第二数组中的每一个源码以将每一个源码转换成预设格式;
对转换成预设格式的每一个源码进行解析以判断是否存在预设标签;
将转换成预设格式的多个源码中存在预设标签的第一源码保存到第三数组中。
4.如权利要求3所述的方法,其特征在于,在每一个第一源码的预设标签对应的输入框中注入恶意脚本并将所述恶意脚本发送到所述服务端,进一步包括:
遍历第三数组以将恶意脚本注入到所述第三数组中每一个第一源码的预设标签对应的输入框中。
5.如权利要求4所述的方法,其特征在于,根据不包括所述预设标签的源码对应的路径重新向所述服务端请求相应的待检测页面,并在每一个重新请求得到的新页面上搜索预设页面元素,进一步包括:
将不包括所述预设标签的源码对应的待检测页面的路径保存到第四数组中;
遍历所述第四数组中的每一个路径并在遍历过程中重新向所述服务端请求新页面,以在每一个新页面上搜索预设页面元素。
6.如权利要求5所述的方法,其特征在于,响应于搜索到预设页面元素,触发模拟悬浮,进一步包括:
响应于搜索到页面元素,模拟鼠标悬停在所述预设页面元素上;
将触发悬停后的新页面的源码保存到第五数组中。
7.如权利要求6所述的方法,其特征在于,基于触发模拟悬浮后的新页面的源码中是否存在恶意脚本确定所述待检测系统中是否存在漏洞,进一步包括:
遍历所述第五数组以将第五数组中的每一个源码转换成预设格式;
判断转换成预设格式的源码中是否存在所述恶意脚本;
响应于存在恶意脚本,确定所述待检测系统中存在漏洞。
8.一种漏洞检测系统,其特征在于,包括:
获取模块,配置为获取待测系统中的每一个待检测页面的路径,并根据所述路径向服务端请求每一个待检测页面;
查找模块,配置为遍历每一个待检测页面的源码以查找包括预设标签的第一源码;
注入模块,配置为在每一个第一源码的预设标签对应的输入框中注入恶意脚本并将所述恶意脚本发送到所述服务端;
搜索模块,配置为根据不包括所述预设标签的源码对应的路径重新向所述服务端请求相应的待检测页面,并在每一个重新请求得到的新页面上搜索预设页面元素;
触发模块,配置为响应于搜索到预设页面元素,触发模拟悬浮;
确定模块,配置为基于触发模拟悬浮后的新页面的源码中是否存在恶意脚本确定所述待检测系统中是否存在漏洞。
9.一种计算机设备,包括:
至少一个处理器;以及
存储器,所述存储器存储有可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时执行如权利要求1-7任意一项所述的方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时执行如权利要求1-7任意一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110837754.2A CN113612745B (zh) | 2021-07-23 | 2021-07-23 | 一种漏洞检测方法、系统、设备以及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110837754.2A CN113612745B (zh) | 2021-07-23 | 2021-07-23 | 一种漏洞检测方法、系统、设备以及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113612745A true CN113612745A (zh) | 2021-11-05 |
CN113612745B CN113612745B (zh) | 2023-05-09 |
Family
ID=78305258
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110837754.2A Active CN113612745B (zh) | 2021-07-23 | 2021-07-23 | 一种漏洞检测方法、系统、设备以及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113612745B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104881608A (zh) * | 2015-05-21 | 2015-09-02 | 北京工业大学 | 一种基于模拟浏览器行为的xss漏洞检测方法 |
CN107172029A (zh) * | 2017-05-09 | 2017-09-15 | 努比亚技术有限公司 | 跨站攻击解决方法、移动终端及存储介质 |
CN111324894A (zh) * | 2020-02-29 | 2020-06-23 | 苏州浪潮智能科技有限公司 | 一种基于web应用安全的XSS漏洞检测方法及系统 |
CN112287349A (zh) * | 2019-07-25 | 2021-01-29 | 腾讯科技(深圳)有限公司 | 安全漏洞检测方法及服务端 |
-
2021
- 2021-07-23 CN CN202110837754.2A patent/CN113612745B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104881608A (zh) * | 2015-05-21 | 2015-09-02 | 北京工业大学 | 一种基于模拟浏览器行为的xss漏洞检测方法 |
CN107172029A (zh) * | 2017-05-09 | 2017-09-15 | 努比亚技术有限公司 | 跨站攻击解决方法、移动终端及存储介质 |
CN112287349A (zh) * | 2019-07-25 | 2021-01-29 | 腾讯科技(深圳)有限公司 | 安全漏洞检测方法及服务端 |
CN111324894A (zh) * | 2020-02-29 | 2020-06-23 | 苏州浪潮智能科技有限公司 | 一种基于web应用安全的XSS漏洞检测方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN113612745B (zh) | 2023-05-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10613971B1 (en) | Autonomous testing of web-based applications | |
US10261984B2 (en) | Browser and operating system compatibility | |
US8065667B2 (en) | Injecting content into third party documents for document processing | |
CN105868096B (zh) | 用于在浏览器中显示web页面测试结果的方法、装置及设备 | |
CN110069683B (zh) | 一种基于浏览器爬取数据的方法及装置 | |
US20020188890A1 (en) | System and method for testing an application | |
CN109376291B (zh) | 一种基于网络爬虫的网站指纹信息扫描的方法及装置 | |
CN104956362A (zh) | 分析web应用程序的结构 | |
CN105095067A (zh) | 用户界面元素对象识别及自动化测试的方法和装置 | |
CN110688307B (zh) | JavaScript代码检测方法、装置、设备和存储介质 | |
KR20110107363A (ko) | 마크업 언어를 통해 클라이언트 브라우저 상태의 서버-사이드 로깅을 위한 방법 | |
CN103647678A (zh) | 一种网站漏洞在线验证方法及装置 | |
CN110275705A (zh) | 生成预加载页面代码的方法、装置、设备及存储介质 | |
CN111797336A (zh) | 一种网页解析方法、装置、电子设备及介质 | |
CN103177115A (zh) | 一种提取网页页面链接的方法和装置 | |
Nederlof et al. | Software engineering for the web: the state of the practice | |
Gundecha | Selenium Testing Tools Cookbook | |
CN112579476A (zh) | 一种漏洞和软件对齐的方法、装置以及存储介质 | |
US9715483B2 (en) | User interface for testing and asserting UI elements with natural language instructions | |
CN114491560A (zh) | 一种漏洞检测方法、装置、存储介质及电子设备 | |
WO2016122508A1 (en) | Test generation for browser-based user interface | |
US20230195825A1 (en) | Browser extension with automation testing support | |
CN113612745B (zh) | 一种漏洞检测方法、系统、设备以及介质 | |
CN110795931B (zh) | 一种web网站页面语言的检测方法及终端 | |
CN112650479A (zh) | 网页css结构自动生成方法及存储介质 |
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 |