一种web框架注入漏洞检测方法及装置与流程

文档序号:22506012发布日期:2020-10-13 09:43阅读:286来源:国知局
本申请涉及网络安全
技术领域
:,尤其涉及一种web框架注入漏洞检测方法及装置。
背景技术
::随着互联网技术的普及,web应用规模越来越大,web应用面对的入侵威胁也越来越大。一旦web应用被攻击就会造成严重的后果。web应用常见的漏洞有xss注入、框架注入、链接注入等,其中框架注入是网络安全领域中常见的漏洞之一。如果web应用的漏洞被黑客利用,黑客可以窃取用户登录凭证、窃取用户账号、甚至控制整个web应用并获取web应用的服务器权限,造成不可挽回的损失,给web应用及相关用户带来严重的危害。一般来说,对于框架注入的漏洞检测方法主要就是通过注入包括框架代码的探测代码,其中主要就是构造含有固定闭合标签前缀的框架代码作为探测代码,然后将该探测代码替换至待检测web应用的潜在框架注入漏洞注入点处,获取响应内容,如果在该响应内容中发现了检测代码中的框架代码并且该框架代码可被执行,则认为存在框架注入漏洞。但是现有的框架注入漏洞检测方法中,存在因某些标签未被闭合而造成框架代码不可被执行的情况,从而造成框架注入漏洞漏报;存在忽略某些未闭合标签,放宽漏洞存在判定条件,即不考虑框架代码是否被执行,只观察框架代码是否出现在响应内容中来判定框架注入漏洞是否存在的情况,从而造成框架注入漏洞误报;也存在因固定闭合标签前缀导致用于检测的探测代码长度超过了网站允许输入数据长度的限制而无法成功注入,从而造成框架注入漏洞漏报。因此,为了能够准确、灵活的检测出web应用的框架注入漏洞,本发明提出了一种web框架注入漏洞检测方法。技术实现要素:本申请实施例提供了一种web框架注入漏洞检测方法及装置,用以解决现有技术中对web应用的框架注入漏洞检测场景覆盖不够全面,存在漏报及误报等问题。第一方面,本申请实施例提供一种web框架注入漏洞检测方法,包括:客户端向web应用发送第一探测请求,第一探测请求中包括触发异常响应的随机字符串,其中该触发异常响应的随机字符串为普通随机字符串、触发异常响应字符串的组合。进一步地,当从web应用接收的第一响应内容中包括触发异常响应的随机字符串时,客户端根据第一响应内容中触发异常响应的随机字符串,确定web应用的潜在框架注入漏洞注入点。然后客户端根据触发异常响应的随机字符串在第一响应内容中出现的位置和第一响应内容,生成待闭合的标签组。接着客户端根据待闭合的标签组、web应用对输入数据处理特点探测规则组和触发异常响应字符串生成探测代码,将探测代码注入到潜在框架注入漏洞注入点后,向web应用发送包括探测代码的第二探测请求。进一步地,客户端获取与第二探测请求对应的第二响应内容,然后根据第二响应内容确定web应用的数据处理特点集合。客户端根据数据处理特点集合、框架注入漏洞探测规则模板、待闭合的标签组和触发异常响应字符串生成框架代码。进一步地,客户端将框架代码注入到潜在框架注入漏洞注入点后,向web应用发送包括框架代码的第三探测请求。接着获取与第三探测请求对应的响应内容,当从响应内容中确定框架代码被执行时,客户端确定web应用存在框架注入漏洞。进一步地,上述触发异常字符串可以令web应用返回异常内容,web应用在异常情况下仍可能存在框架注入漏洞风险,考虑异常情况可更全面地检测出web应用的框架注入漏洞。进一步地,客户端根据普通随机字符串可以快速确定潜在框架注入漏洞注入点的位置,帮助更快速地检测出web应用的框架注入漏洞。也就是说,因为存在框架注入漏洞注入点的web应用一定能够在该web应用的响应内容中找到注入的数据,所以本申请实施例中,通过在响应内容中查找注入的触发异常响应的随机字符串来确定是否存在潜在框架注入漏洞注入点,以及确定潜在框架注入漏洞注入点的位置。示例性地,客户端向web应用输入触发异常响应的随机字符串“857092')”,其中“857092”为普通随机字符串,“')”为触发异常响应字符串。进一步地,客户端在接收到来自web应用的第一响应内容后,在第一响应内容中查找“857092')”,当第一响应内容中找到了注入的数据“857092')”时,则确定对应的注入位置为该web应用的潜在框架注入漏洞注入点。提供了灵活、精准的框架注入漏洞检测技术,实现准确探测出web应用的框架注入漏洞以便及时通知web应用的运维人员对框架注入漏洞进行修复,阻止攻击者利用框架注入漏洞发动进一步的攻击。在一种可能的设计中,根据触发异常响应的随机字符串在第一响应内容中出现的位置和第一响应内容,生成待闭合的标签组,包括:客户端对响应内容进行字符串分割,确定触发异常响应的随机字符串在响应内容中出现位置之后的n-1个字符串。进一步地,客户端根据n-1个字符串,生成待闭合的标签组。通过对响应内容进行分割,为后续提取出有效的待闭合标签组做好准备,使场景覆盖更全面,减少框架注入漏洞的漏报及误报,提高框架注入漏洞的检测效率。其中,在一种可能的设计中,客户端针对n-1个字符串中的第一字符串,第一字符串为n-1个字符串中的任意一个;获取第一字符串对应的m个初始超级文本标记语言html标签,将m个初始html标签进行前向相同相消,得到去重后的第一标签集合,接着对n-1个字符串对应的n-1个第一标签集合进行消重后,与预设标签集合取交集,得到最终的待闭合标签组。通过标签两两消重、取交集后得到最终的待闭合标签组,能够缩短后续步骤中所注入框架代码的字符串长度,使得框架注入漏洞检测效果更好,检测效率更高。在一种可能的设计中,客户端根据数据处理特点集合和待闭合的标签组生成框架代码,包括:客户端根据数据处理特点集合填充框架注入漏洞探测模板中的标签,生成框架注入漏洞探测规则,框架注入漏洞探测模板包括协议标识、框架标识、随机域名、符号标识。进一步地,客户端根据框架注入漏洞探测规则、待闭合的标签组和能够触发异常响应字符串生成框架代码。其中,客户端根据数据处理特点集合对框架注入漏洞探测规则模板中的标签进行处理,生成框架注入漏洞探测规则。具体地,客户端根据数据处理特点集合,对框架注入漏洞探测模板中的标签,比如:协议标识、框架标识、随机域名、符号标识进行格式转换,生成框架注入漏洞探测规则。进一步地,客户端根据框架注入漏洞探测规则、待闭合的标签组、能够触发异常响应字符串生成框架代码。本申请实施例中,客户端通过生成框架代码,使生成的第三探测请求可以更准确地探测出web应用对输入数据的处理特点,帮助更准确的找出web应用的框架注入漏洞,帮助运维人员进行web应用的维护,加强网络安全。在一种可能的设计中,客户端根据所述待闭合的标签组生成探测代码,包括:根据待闭合的标签组和触发异常响应字符串、多组随机数以及探测web应用对输入数据处理特点的规则组,生成探测代码。其中,探测web应用对输入数据处理特点的规则组包括至少一个参考数据。在客户端探测web应用对输入数据处理特点的过程中,利用规则中的预设的参考数据,比如“//”,试探出web应用对“//”的处理特点,示例性地,当web应用对“//”进行处理后对应返回的值为“/”,说明该web应用会将“//”转换成“/”。通过上述技术方案,可以帮助更快速准确地探测出web应用存在的框架注入漏洞。在一种可能的设计中,由多组随机数和规则组组成的拼接字符串的长度不超过框架代码中漏洞探测规则的最大长度。通过对探测代码中的多组随机数和规则组组成的拼接字符串长度、框架代码的字符串长度进行限制,保证检测的可靠性,避免出现注入的字符串过长而导致探测结果失效的情况。在一种可能的设计中,客户端根据第二响应内容确定web应用的数据处理特点集合,包括:从第二响应内容中获取多组随机数和探测web应用对输入数据处理特点的规则组对应的响应内容,再根据多组随机数和探测web应用对输入数据处理特点的规则组,确定出web应用对输入数据的数据处理特点集合。其中,客户端根据第二响应内容中的多组随机数,确定出经web应用处理后的参考数据,进一步地确定出web应用对输入数据的数据处理特点集合。为后续探测做好准备,帮助生成更准确的探测请求,提高探测效率。在一种可能的设计中,数据处理特点集合包括web应用对数据过滤方面的处理特点、对数据编码方面的处理特点中的至少一个。在一种可能的设计中,向web应用发送第一探测请求之前,包括:采集待检测web应用下的各个网页,确定出符合预设条件的web应用及其网页。可选地,利用预设的爬虫程序自动抓取待检测web应用下的各个网页,选取网页的统一资源定位符url地址中包括“参数=参数值”形式的各个网页,在框架注入漏洞检测中,可以将生成的随机字符串、探测代码、框架代码替换至参数值后发送对应的探测请求,帮助更好地检测出web应用存在的框架注入漏洞,提高框架注入漏洞检测的效率。第二方面,本申请实施例提供一种web框架注入漏洞检测装置,包括:发送单元,用于向全球广域网web应用发送第一探测请求,所述第一探测请求中包括触发异常响应的随机字符串;所述触发异常响应的随机字符串为普通随机字符串、触发异常响应字符串的组合;处理单元,用于当从web应用接收的第一响应内容中包括触发异常响应的随机字符串时,确定web应用的潜在框架注入漏洞注入点;处理单元,还用于根据触发异常响应的随机字符串在第一响应内容中出现的位置和第一响应内容,生成待闭合的标签组;处理单元,还用于根据所述待闭合的标签组、web应用对输入数据处理特点探测规则组和触发异常响应字符串生成探测代码;发送单元,还用于将探测代码注入到潜在框架注入漏洞注入点后,向web应用发送包括探测代码的第二探测请求;接收单元,用于获取与第二探测请求对应的第二响应内容;处理单元,还用于根据第二响应内容确定web应用的数据处理特点集合;处理单元,还用于根据数据处理特点集合、框架注入漏洞探测规则模板、待闭合的标签组和触发异常响应字符串生成框架代码;发送单元,还用于将框架代码注入到潜在框架注入漏洞注入点后,向web应用发送包括框架代码的第三探测请求;接收单元,还用于获取与第三探测请求对应的第三响应内容;处理单元,还用于当从第三响应内容中确定框架代码被执行时,确定web应用存在框架注入漏洞。在一种可能的设计中,处理单元具体用于,对响应内容进行字符串分割,确定响应内容中触发异常响应的随机字符串出现位置之后的n-1个字符串;根据n-1个字符串,生成待闭合的标签组。在一种可能的设计中,处理单元具体用于,针对n-1个字符串中的第一字符串,第一字符串为n-1个字符串中的任意一个;获取第一字符串对应的m个初始html标签,将m个初始html标签进行前向相同相消,得到去重后的第一标签集合;对n-1个字符串对应的n-1个第一标签集合进行消重后,与预设标签集合取交集,得到最终的待闭合标签组。在一种可能的设计中,根据所述数据处理特点集合填充框架注入漏洞探测规则模板中的标签,生成框架注入漏洞探测规则;其中,所述框架注入漏洞探测规则模板包括协议标识、框架标识、随机域名、符号标识。进一步地,根据所述框架注入漏洞探测规则、所述待闭合的标签组和触发异常响应字符串生成所述框架代码。在一种可能的设计中,处理单元具体用于根据待闭合的标签组和触发异常响应字符串、多组随机数,以及探测web应用对输入数据处理特点的规则组,生成探测代码;所述规则组用于探测至少一个web应用对输入数据处理的特点。在一种可能的设计中,多组随机数和所述规则组组成的拼接字符串的长度不超过所述框架代码中漏洞探测规则的最大长度。在一种可能的设计中,处理单元具体用于,从所述第二响应内容中获取所述多组随机数和所述探测web应用对输入数据处理特点的规则组对应的响应内容,再根据所述多组随机数和所述探测web应用对输入数据处理特点的规则组,得到所述数据处理特点集合。数据处理特点集合包括web应用对数据过滤方面的处理特点、对数据编码方面的处理特点中的至少一个。在一种可能的设计中,向web应用发送第一探测请求之前,处理单元还用于采集待检测web应用,确定出符合预设条件的web应用。第三方面,本发明另一实施例提供了一种计算设备,其包括存储器和处理器,其中,存储器用于存储计算机程序,处理器用于调用存储器中存储的程序,按照获得的程序执行上述第一方面任一种方法。第四方面,本发明另一实施例提供了一种计算机存储介质,计算机可读存储介质存储有计算机可执行程序,计算机可执行程序用于使计算机执行上述第一方面任一种方法。附图说明为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1所示为本申请实施例提供的一种web框架注入漏洞检测的应用场景示意图;图2所示为本申请实施例提供的一种web框架注入漏洞检测方法的流程示意图;图3所示为本申请实施例提供的一种web框架注入漏洞检测流程示意图;图4所示为本申请实施例提供的一种web框架注入漏洞检测装置计算设备示意图。具体实施方式为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。参见图1所示的一种web框架注入漏洞检测的应用场景示意图,包括客户端10及web服务器20。可选地,在本发明实施例中,上述客户端10可以包括但不限于以下至少之一:手机、平板电脑、笔记本电脑、pc机。客户端10上包括web浏览器,用户可以通过客户端10上的web浏览器向web应用发送探测请求;web应用位于web服务器20上,web服务器20根据接收的探测请求返回对应的响应内容。示例性地,用户在客户端10上的web浏览器中输入待检测web应用的url(uniformresourcelocator,统一资源定位符)地址,接着客户端10通过网络向web服务器20上的web应用发送各种探测请求,并获取对应的web应用的响应内容,接着根据不同的响应内容对该web应用的框架注入漏洞情况进行检测。需要说明的是,漏洞是指一个系统存在的弱点或缺陷,其可能来自于应用软件或操作系统设计时的缺陷或编码时产生的错误,也可能来自业务在交互处理过程中的设计缺陷或逻辑流程上的不合理之处。由于漏洞对网络、系统、终端、服务器等安全性的影响非常大,因此如何检测并进行修补存在的漏洞对于目标的安全性非常重要。在对待测试web应用进行漏洞检测时,需要针对不同web应用的特点进行检测,确定出不同web应用的数据处理特点、不同注入点的有效待闭合标签,进一步地避免了漏检测的问题,高效准确地完成对待检测web应用的框架注入漏洞检测。结合上述web框架注入漏洞检测的系统架构图,本发明实施例还提供一种web框架注入漏洞检测方法的流程示意图,如图2所示,具体包括:步骤201,客户端10向web服务器20上的web应用发送第一探测请求,其中包括能够触发异常响应的随机字符串,当客户端10从web应用接收的第一响应内容中包括所述随机字符串时,确定web应用的潜在框架注入漏洞注入点。其中,上述触发异常响应的随机字符串为普通随机字符串、触发异常响应字符串的组合。其中,该普通随机字符串是使用随机字符串生成器生成的,其中可以由数字、字符中的至少一种组成,比如可以为“857092”。进一步地,上述触发异常响应字符串可以包含“'”、“"”、“)”等字符。示例性地,该随机字符串可以为“857092')”。结合图1来说,当客户端10从web服务器20上的web应用接收的第一响应内容中包括该触发异常响应的随机字符串时,客户端10可以根据第一响应内容中的触发异常响应的随机字符串,确定出该web应用的潜在框架注入漏洞注入点。示例性地,客户端10向web服务器20上的web应用比如“www.abc.com”中符合要求的各个网页,其中客户端10可以确定出url地址中包括“参数=参数值”形式的网页,如统一资源定位符url地址为“www.abc.com/test=123”的网页,并向该网页发送包括触发异常响应的随机字符串“857092')”的第一探测请求。其中具体地,客户端10将网页“www.abc.com/test=123”中的参数值“123”替换成触发异常响应的随机字符串“857092')”,进一步地,web服务器20接收到该探测请求之后,根据该探测请求寻找页面,返回对应的第一响应内容,当客户端10检测到该第一响应内容中包括普通随机字符串“857092”时,认为该web应用的网页“www.abc.com/test=123”存在潜在框架注入漏洞注入点。通过上述技术方案,快速查找出可能存在框架注入漏洞的web应用及其注入点,为后续web应用框架注入漏洞检测做好准备,提高框架注入漏洞检测效率。此外,本申请实施例中,客户端10通过将触发异常响应字符串替换到参数值处,使web应用返回异常响应内容,再根据异常响应内容进行框架注入漏洞检测,从而扩大框架注入漏洞检测场景覆盖范围,提高框架注入漏洞检测率。步骤202,客户端10根据触发异常响应的随机字符串在第一响应内容中出现的位置和第一响应内容,生成待闭合的标签组。具体地,客户端10确定触发异常响应的随机字符串在第一响应内容的位置,并以各个触发异常响应的随机字符串为分割节点对第一响应内容进行分割,从分割之后得到的各个部分中获取触发异常响应的随机字符串之后的字符串,并根据触发异常响应的随机字符串之后的字符串生成待闭合的标签组。示例性地,客户端10在第一响应内容中查找上述普通随机字符串“857092”,并进一步地根据触发异常响应的随机字符串“857092')”从第一响应内容中提取出待闭合的标签组,最终确定出待闭合的标签组为“</textarea>”,为后续探测做好准备工作,避免现有技术中对任何web应用的网页的检测都带同一份固定内容的待闭合标签进行注入,减少了因注入内容中的待闭合标签不准确而造成的漏报,也避免了注入内容中的闭合标签过多,注入的字符串过长,造成的网页响应失败的情况,实现更准确地检测出web应用存在的框架注入漏洞,方便运维人员进行web应用维护,提高web应用安全性。步骤203,客户端10根据待闭合的标签组生成探测代码,将探测代码注入到潜在框架注入漏洞注入点后,向web应用发送包括探测代码的第二探测请求。接着,客户端10获取与第二探测请求对应的第二响应内容,根据第二响应内容确定web应用的数据处理特点集合。在一种可能的实施例中,探测代码可以由待闭合的标签组、触发异常响应字符串、多组随机数,以及探测web应用对输入数据处理特点的规则组组成。进一步地,探测代码中多组随机数和规则组组成的拼接字符串的长度不超过框架代码中漏洞探测规则的最大长度。其中,本申请实施例中,客户端10通过对多组随机数和规则组组成的拼接字符串的长度、框架代码中漏洞探测规则的字符串长度进行限制,保证了在对输入字符串长度有一定限制要求的web应用的应用场景中,能够有效地根据web应用各个网页返回的响应内容中的各个注入点回显位置,动态生成web应用的待闭合标签集合,进一步地,还可以将节省出来的字符串长度充分留给框架代码,从而在有限长的输入限制内高效、准确的检测出框架注入漏洞,还可以保证在web应用特点探测和漏洞检测时所使用的不同的注入的数据在web应用的输入有效性检测上结果一致,从而最大程度保证框架注入漏洞检测的可靠性。具体实施时,探测代码中多组随机数和规则组组成的拼接字符串的长度、框架代码中漏洞探测规则的预设长度的确定方法可以人为确定,也可以对web应用进行字符串输入长度探测后确定,可选地,探测代码与框架代码的字符串长度限定可以分别设定不同的值,也可以设定为同一个值。进一步地,本申请实施例中,客户端10通过数据处理特点的探测请求和逻辑推理,确定出被检测web应用对输入数据处理的数据处理特点,并根据特点自适应调整框架注入漏洞检测规则,从而对框架注入漏洞进行精准检测,提高检测准确性、可靠性。步骤204,客户端10根据数据处理特点集合和待闭合的标签组生成框架代码。进一步地,将框架代码注入到潜在框架注入漏洞注入点后,客户端10向web应用发送包括框架代码的第三探测请求。进一步地,客户端10获取与第三探测请求对应的第三响应内容,当从第三响应内容中确定框架代码被执行时,确定该web应用存在框架注入漏洞。为便于理解,下面对本申请实施例提供的web框架注入漏洞检测方法作进一步说明,可包括以下内容:在一种可能的实施例中,步骤201之前,客户端10采集待检测web应用的各个网页,确定出符合预设条件的web应用及对应的网页。示例性地,用户在客户端10中输入待检测web应用的网址,比如“www.abc.com”。客户端10通过预设网络爬虫(一种自动获取网页内容的程序)自动抓取该web应用下符合预设条件的各个网页。比如找出网址中包括“a=x”形式的网页,比如找出网页“www.abc.com/test=123”。上述技术方案通过找出符合预设条件的各个待检测web应用的网页,为后续框架注入漏洞检测做准备,提框架注入漏洞高检测效率。在一种可能的实施例中,在步骤201包括:针对上述待检测web应用的符合预设条件的网页(比如针对“www.abc.com/test=123”),客户端10执行如下处理:发送包括触发异常响应的随机字符串的第一检测请求到网页。其中可选地,触发异常响应的随机字符串可以为普通随机字符串、触发异常响应字符串的组合,随机字符串生成器生成普通随机字符串,比如“857092”,用户可以预先设置触发异常响应字符串比如“'”、“)”。其中,触发异常响应字符串可以包括但不限于“'”、“"”、“)”中的任意一个。示例性地,客户端10生成的触发异常响应的随机字符串为“857092')”。示例性地,客户端10可以将“test=123”中的参数值“123”替换成触发异常响应的随机字符串“857092')”,进一步地,通过web浏览器在web服务器20上访问该url地址“www.abc.com/test=857092')”,上述web服务器20查找对应页面的第一响应内容并返回给客户端10。本技术方案中,通过随机字符串生成器随机生成普通随机字符串,降低注入内容和原web应用内容的重合概率,使能够在响应内容中快速定位到注入内容。进一步地,客户端10根据web服务器20返回的第一响应内容进行分析,当第一响应内容中包括了上述触发异常响应的随机字符串时,认为对应的网页可能存在框架注入漏洞风险,由此确定出web应用下各个网页中的潜在框架注入漏洞注入点。通过上述技术方案实现对web应用的框架注入漏洞注入点的初步探测,为后续探测做好准备,帮助实现更加准确地探测出web应用的框架注入漏洞。示例性地,当上述响应内容中不包括触发异常响应的随机字符串时,认为该网页不存在框架注入漏洞,继续检测下一个网页。在一种可能的实施例中,在步骤202具体包括:客户端10首先对响应内容进行字符串分割,确定响应内容中第一个触发异常响应的随机字符串之后的n-1个字符串。示例性地,以触发异常响应的随机字符串在该响应内容中的位置为分割节点,确定出两两分割节点之间、最后一个分割节点到响应内容末尾的n-1个字符串进行分析。接着客户端10根据n-1个字符串,生成待闭合的标签组。示例性地,在第一响应内容中查找到4个触发异常响应的随机字符串“857092')”,则根据该触发异常响应的随机字符串为分割节点,将除了分割节点“857092')”外的响应内容分割成5部分,进一步地,舍弃第一个分割节点“857092')”前的响应内容,确定出剩余的4部分响应内容对应的4个字符串。本申请技术方案通过在响应内容中查找普通随机字符串“857092”,可以实现快速定位,提高了框架注入漏洞检测效率。进一步地,客户端10针对n-1个字符串中的第一字符串,第一字符串为n-1个字符串中的任意一个;获取第一字符串对应的m个初始html标签,将m个初始html标签进行前向相同相消,得到去重后的第一标签集合,接着客户端10对n-1个字符串对应的n-1个第一标签集合进行消重后,与预设标签集合取交集,得到最终的待闭合标签组。示例性地,客户端10针对4个字符串中的第一字符串执行如下处理:提取第一字符串中的10个初始html标签“</textarea>、</div>、<div>、<table>、<tr>、<td>、<a>、</a>、<td>、<tr>、</table>、</div>”;可选地,对标签进行格式转换,生成“<textarea>、<div>、<div>、<table>、<tr>、<td>、<a>、<a>、<td>、<tr>、<table>、<div>”,进一步地对上述标签进行前向相同相消,得到去重后的标签集合“<textarea>、<div>”;可选地,再次进行格式转换生成标签集合“</textarea>、</div>”。类似地,确定出上述4个字符串对应的4个标签集合,接着对这个4个标签集合进行消重。示例性地,确定出消重后的标签集合“</textarea>、</div>”。进一步地与预设标签集合取交集,确定出最终的有效的待闭合的标签组。示例性地,用户预先设置有效标签集合“</textarea>、</text>”,则确定出交集中有效的待闭合的标签组为“</textarea>”。可选地,当交集为空时,说明响应内容中提取出来的标签不影响后续注入,也就是不影响后续框架注入漏洞检测。通过上述有效的待闭合的标签组的提取,确定出有效的待闭合标签集合,减少后续框架注入漏洞检测的注入内容中的无效标签,也就是减少了检测的注入字符串长度,防止因注入的字符串长度超过web应用对输入数据的限制长度而导致的框架注入漏洞漏报,保证注入字符串能够发挥最大作用,提高框架注入漏洞检测的准确性和检测效率。还实现了根据响应内容动态生成有效的待闭合标签集合,不再沿用现有技术中的直接使用固定内容的闭合标签,使场景覆盖更全面,进一步地避免了框架注入漏洞的漏报、误报。在一种可能的实施例中,在步骤203具体包括:客户端10根据待闭合的标签组、多组随机数、探测web应用对输入数据处理特点的规则组、触发异常响应字符串生成探测代码。其中可选地,探测web应用对输入数据处理特点的规则组包括至少一个参考数据。接着,客户端10获取与第二探测请求对应的第二响应内容,根据第二响应内容中的参考数据,确定出web应用对输入数据的数据处理特点集合。从第二响应内容中获取多组随机数和探测web应用对输入数据处理特点的规则组对应的响应内容;再根据多组随机数和探测web应用对输入数据处理特点的规则组,得到数据处理的特点集合。进一步地,客户端10确定出第二响应内容中经web应用处理后的参考数据,确定出web应用对输入数据的数据处理特点集合。可选地,客户端10根据第二响应内容中随机数组的位置确定出输入的参考数据的位置,并分析得到对应的web应用的网页对输入数据的处理特点。其中,web应用的数据处理特点集合包括web应用对数据过滤方面的处理特点、对数据编码方面的处理特点中的至少一个。示例性地,客户端10首先构造探测web应用对输入数据的数据处理特点规则组,r=r1,r2,…,rn,其中每个小规则ri(i=1,2,…,n),也就是参考数据,负责探测至少一个该web应用对输入数据处理的小特点,比如是否过滤某个敏感字符、是否对某个字符进行编码转义等特点。每个小规则之间有一定的逻辑关系,可以推理出更多的被探测web应用对输入数据的数据处理特点,示例性地,r1=“/”负责探测web应用是否对“/”字符进行特殊处理,r2=“http://=https://”负责探测web应用是否对“http”、“https”、“//”、“=”等字符进行特殊处理,r1和r2联合起来可以推理web应用对“//”和“/”两者处理的逻辑关系。r3=“frame”负责探测web应用是否对“frame”进行特殊处理。进一步地,客户端10生成多个随机数组num1,num2,…,numn,示例性地,客户端10生成随机字数组“115”、“116”、“117”、“118”。客户端10根据上述随机数组和数据处理特点探测规则、待闭合的标签组、能够触发异常响应字符串生成探测代码,示例性地,客户端10生成探测代码“')</textarea>115r1116r2117r3118r4119”。进一步地,客户端10将上述探测代码替换至对应网页的url地址中的参数值部分,比如将“www.abc.com/test=123”中的参数值“123”进行替换,生成“www.abc.com/test=')</textarea>115r1116r2117r3118r4119”并发送对应第二探测请求到web服务器20,接收对应的第二响应内容并进行分析,确定出web应用对应的数据处理特点的集合[s1,s2,s3,s4,s5,s6]。其中根据第二响应内容中的参考数据,确定出web应用对输入数据的数据处理特点集合。示例性地,s1代表该web应用对“/”字符进行过滤(对数据过滤方面的处理特点),s2代表该web应用对“http”字符串整体过滤,但对“https”字符串并不过滤,s3代表该web应用对“=”字符不做特殊处理(对数据编码方面的处理特点),s4代表该web应用会将“//”转化为“/”,s5代表该web应用对“//”转化的“/”并不会进行过滤,s6代表该web应用对“frame”不进行过滤。在一种可能的实施例中,在步骤204具体包括:客户端10根据所述数据处理特点集合、框架注入漏洞探测模板、和待闭合的标签组以及触发异常响应字符串生成框架代码。具体地,客户端10根据数据处理特点集合填充框架注入漏洞探测规则模板中的标签,生成框架注入漏洞探测规则,然后根据框架注入漏洞探测规则、待闭合的标签组和触发异常响应字符串生成框架代码。其中,框架注入漏洞探测模板包括协议标识、框架标识、随机域名、符号标识。示例性地,客户端10根据数据处理特点集合对框架注入漏洞探测模板进行处理,其中对协议标识、框架标识、随机域名、符号标识进行处理,得到对应的框架注入漏洞探测规则。进一步地,客户端10可以根据上述待闭合的标签组、触发异常响应字符串、随机数组和框架注入漏洞探测规则生成框架代码。示例性地,客户端10首先根据上述数据处理特点集合对预设的框架注入漏洞探测模板“[<][frametag][spacechar][src][=][protocol][://][>]”进行处理,具体地,客户端10结合上述数据探测特点对括号“[]”中的内容进行处理,比如根据数据处理特s6可知对“frame”标签没有过滤,所以可将“[frametag]”替换为“frame”,根据数据处理特点集合对框架注入漏洞探测模板“[<][frametag][spacechar][src][=][protocol][://][>]”进行处理之后,就得到了对应的框架注入漏洞探测规则。再进一步地,客户端10根据上述框架注入漏洞探测规则、待闭合的标签组、触发异常响应字符串生成框架代码,将上述框架代码替换至对应的参数值处,也就是注入到潜在框架注入漏洞注入点后,客户端10通过web浏览器向web服务器20发送包括框架代码的第三探测请求。进一步地,在一种可能的实施例中,步骤205中客户端10获取与第三探测请求对应的响应内容,当从响应内容中确定框架代码被执行时,比如确定第三响应内容中包括上述输入的框架,则确定该web应用存在框架注入漏洞,通过上述技术方案可以实现有效、准确地确定出web应用的框架注入漏洞,帮助运维人员维护web应用的安全,减少被攻击的风险。本申请实施例中,扩大了框架注入漏洞检测支持的场景范围,使得框架注入漏洞检测不再局限于只能准确检出普通场景下的框架注入漏洞,还能够根据被检测的web应用对输入数据的数据处理的特点,自适应调整检测规则及探测代码。特别是对于异常回显的框架注入漏洞的场景、对输入字符串有一定长度限制的框架注入漏洞场景等场景,可以实现准确、高效的检测出框架注入漏洞,从而有效的提升框架注入漏洞的检测效率、检测准确性。此外,本申请实施例中客户端10通过根据不同的响应内容动态生成精准的待闭合标签集合,能够提供更简洁、易懂的框架注入漏洞信息,使得对web应用的框架注入漏洞的参考验证更加精简、可靠、准确。图3是本申请实施例提供的一种web框架注入漏洞检测流程示意图,包括:步骤301,客户端10发送包括触发异常响应的随机字符串的第一探测请求,接收第一响应内容。示例性地,客户端10设置触发异常响应字符串scanprefix,其中包含“'”、“"”、“)”中的至少一个;进一步地,客户端10使用随机字符串生成器生成一个普通随机字符串randomstr。进一步地,客户端将上述触发异常响应字符串scanprefix和上述普通随机字符串randomstr进行组合,生成触发异常响应的随机字符串prepayload。其中:prepayload=scanprefix+randomstr,“+”号代表字符串拼接。再进一步地,客户端10将上述触发异常响应的随机字符串prepayload替换至待检测web应用中网页url地址中的参数值处,然后发送http请求reqprescan(prepayload)。进一步地,接收web服务器20上web应用返回的第一响应内容precontent,其中precontent=reqprescan(prepayload)。客户端10通过生成包括触发异常响应字符串scanprefix和普通随机字符串randomstr的第一探测请求,实现在web应用出现异常响应下,通过在响应内容中查询上述普通随机字符串randomstr,能够快速确定出潜在的框架注入漏洞注入点的位置,进而实现快速定位框架注入漏洞注入点,确定出web应用的框架注入漏洞,方便运维人员对框架注入漏洞进行修复,阻止攻击者利用框架注入漏洞发动进一步的攻击。其中,上述普通随机字符串可以由数字、字符中的至少一种组成。可选地,客户端预先确定出待检测web应用中url地址中存在“参数=参数值”形式的网页。步骤302,客户端10判断第一响应内容是否包括上述触发异常响应的随机字符串。示例性地,客户端10分析得到的第一响应内容,当第一响应内容中存在上述触发异常响应的随机字符串,认为该web应用的网页对应的参数值处是可能的框架注入漏洞注入点,继续进行步骤303。当判断为是时,进入步骤303,客户端10根据第一响应内容中触发异常响应的随机字符串的位置后的html标签确定出有效的待闭合标签组。客户端10根据触发异常响应的随机字符串prepayload在第一响应内容precontent中的位置,对precontent进行分割,分割后可为如下所示:precontent=content1+randomstr+content2+randomstr+…+randomstr+contentn;其中,“+”号代表字符串拼接,n为普通随机字符串randomstr在precontent中出现的次数加上1;从上述分割结果中获取需要分析的响应内容[content2,content3,…,contentn];进一步地,客户端10对contenti进行分析,获取contenti中的html标签,并对html标签进行格式转换,比如将形如</tag>的标签转换为<tag>。示例性地,客户端10从contenti中提取的标签如下:进一步地,客户端10得到转换后为的html标签为:再进一步的,客户端10通过前向相同相消,将标签进行两两消除后,剩余的标签集合进一步地,客户端10对得到的tag2,tag3,…,tagn进行集合之间的消重,得到去重后的标签集合tag′=[<tag1>,<tag2>,…,<tagn>]。进一步地,客户端10对去重后的标签集合tag′进行格式转换,得到tag"=[</tag1>,</tag2>,…,</tagn>]。可选地,用户预先根据经验累积总结确定出可能影响框架代码执行的标签集合scantags=[</tag1>,</tag2>,…,</tagn>]。进一步地,将标签集合scantags与tag"取交集,最终生成有效的待闭合的标签集合tagscan,根据tagscan生成字符串形式的有效的待闭合标签组tagstr。当判断为否,进入步骤308,客户端10判断web应用不存在框架注入漏洞。步骤304,客户端10向web应用发送带有有效的待闭合标签组的第二探测请求,接收第二响应内容。示例性地,客户端10生成随机数组randnum=num1,num2,…,numn。接着客户端10构造探测web应用对输入数据的数据处理特点规则组r=r1,r2,…,rn,其中i=1,2,…,n。其中每个小规则ri,也就是参考数据负责探测至少一个web应用对输入数据的数据处理特点,比如是否过滤某个字符、是否对某个字符进行编码转义等特点。可选地,小规则ri之间可以存在一定的逻辑关系,由此可以确定出更多的被探测web应用对输入数据的数据处理特点。例如r1=“/”负责探测web应用是否对“/”字符进行特殊处理,r2=“http://=https://”负责探测web应用是否对“http”、“https”、“//”、“=”等字符进行特殊处理,进一步地,r1和r2联合起来可以推理web应用对“//”和“/”两者处理的逻辑关系。通过预设的小规则ri探测web应用对输入数据的处理特点,为后续框架注入漏洞探测做好准备,帮助更好地生成符合web应用数据处理特点的探测请求,提高框架注入漏洞探测准确性。进一步地,客户端10根据上述待闭合的标签组、随机数组、web应用对输入数据处理特点探测规则组、触发异常响应字符串生成探测代码testpayload:testpayload=scanprefix+tagstr+num1+r1+num2+r2+…+rn-1+numn;其中,“+”号代表字符串拼接。进一步地,客户端10将上述探测代码testpayload替换至待检测web应用中网页url地址中的参数值处,然后发送http请求,也就是第二探测请求,接收第二响应内容testcontent。步骤305,客户端10根据第二响应内容确定出数据处理特点集合,根据数据处理特点集合、框架注入漏洞探测规则模板、待闭合标签组和触发异常响应字符串生成框架代码,并向web应用发送对应的第三探测请求,接收第三响应内容。其中,通过结合上述数据处理特点集合,对框架注入漏洞探测模板进行处理,得到针对web应用的处理特点的框架注入漏洞探测规则,再结合待闭合的标签组和触发异常响应字符串生成框架代码,进一步地帮助用户更好地检测出web应用存在的框架注入漏洞,提高框架注入漏洞检测的效率,提高web应用的安全性。示例性地,客户端10根据第二响应内容中随机数组中各个随机数numi之间的内容与预先注入的数据处理特点探测规则中的各个小规则ri之间的差异,分析出web应用对于输入数据的数据处理特点集合s=[s1,s2,…,sn]。例如,将探测代码中的num1r1num2r2num3设置为:12/13http://=https://14,其中num1=12、r1=“/”、num2=13、r2="http://=https://"、num3=14。相应地,在第二响应内容中得到:1213:/=https:/14。由此客户端10推断出该web应用对输入数据的数据处理特点集合:[s1,s2,s3,s4,s5],其中,s1代表该web应用对“/”字符进行过滤,s2代表该web应用对“http”字符串整体过滤,但对“https”字符串并不过滤,s3代表该web应用对“=”字符不做特殊处理,s4代表该web应用会将“//”转化为“/”,s5代表该web应用对“//”转化的“/”并不会进行过滤。进一步地,框架注入漏洞探测模板可以设置为:vulrule=[<][frametag][spacechar][src][=][protocol][://][sitename][>]其中,客户端10使用随机字符发生器生成随机域名“sitename”,并填充到框架注入漏洞探测模板中的域名内容“[sitename]”处。进一步地,客户端10根据web应用的数据处理特点集合对框架注入探测模板中的括号内的内容进行处理。比如:根据web应用的数据处理特点集合可知该web应用对“frame”标签没有过滤,因此可以将“[frametag]”替换为“frame”。根据上述处理方法对框架注入漏洞探测模板进行处理,确定出对应的框架注入漏洞探测规则vulrulescan。进一步地,生成框架代码vulpayload=scanprefix+tagstr+vulrulescan。其中,通过触发异常响应字符串scanprefix触发web应用的异常响应,在异常响应下找到web应用的框架注入漏洞;进一步地,通过有效的待闭合标签tagstr更有针对性地避免了web应用中因未闭合的标签造成的注入无效的情况,帮助用户或者运维人员更好地探测出web应用的框架注入漏洞;通过根据处理特点集合和框架注入漏洞探测模板得到框架注入漏洞探测规则vulrulescan可以更好地帮助更好地检测出web应用存在的框架注入漏洞,提高框架注入漏洞检测的效率。客户端10将vulpayload替换至待检测的参数值处,然后发送对应的http请求(也就是第三探测请求),并接收来自web服务器20上web应用的第三响应内容。步骤306,客户端10判断框架代码是否可被执行。当判断为是,进入步骤307,客户端10判断web应用存在框架注入漏洞。示例性地,当第三响应内容中包括上述框架注入漏洞探测规则vulrulescan,认为框架注入漏洞探测规则vulrulescan被执行。判断该web应用存在框架注入漏洞。当判断为否,进入步骤308,客户端10判断web应用不存在框架注入漏洞。本申请实施例中,通过上述技术方案,实现快速准确地找到web应用的潜在框架注入漏洞注入点,并根据web应用的响应内容、预设标签集合,生成有效的待闭合标签组,进一步地根据预设的探测小规则,探测出web应用对输入数据的处理规则,结合这些处理规则,生成探测请求,实现更准确地够探测出web应用的框架注入漏洞,帮助快速确定出框架注入漏洞,使对web应用的框架注入漏洞分析更有效,更有针对性。图4是本申请实施例提供一种的web框架注入漏洞检测装置计算设备示意图,包括:一个或多个处理器410以及存储器420,图4中以一个处理器410为例。执行框架注入漏洞检测方法的电子设备还可以包括:输入装置430和输出装置440。处理器410、存储器420、输入装置430和输出装置440可以通过总线或者其他方式连接,图4中以通过总线连接为例。存储器420作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本申请实施例中的漏洞检测方法对应的程序模块。处理器410通过运行存储在存储器420中的非易失性软件程序以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例漏洞检测方法。存储器420可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据漏洞检测装置的使用所创建的数据等。此外,存储器420可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器420可选包括相对于处理器410远程设置的存储器,这些远程存储器可以通过网络连接至框架注入漏洞检测装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。输入装置430可接收输入的数字或字符信息,以及产生与漏洞检测装置的用户设置以及功能控制有关的键信号输入。输出装置440可包括显示屏等显示设备。所述一个或者多个模块存储在所述存储器420中,当被所述一个或者多个处理器410执行时,执行上述任意方法实施例中的漏洞检测方法。上述产品可执行本申请实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本申请实施例所提供的方法。本领域技术人员应明白,本申请的实施例提供为方法、装置(设备)、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。本申请是参照根据本申请实施例的方法、装置(设备)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的程序产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的程序产生包括程序装置的制造品,该程序装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的程序提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1