一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

漏洞检测方法、装置和存储介质与流程

2022-09-03 17:01:28 来源:中国专利 TAG:


1.本公开涉及网络安全技术领域,特别是一种漏洞检测方法、装置和存储介质。


背景技术:

2.随着互联网的发展,基于web(world wide web,万维网)的应用系统被广泛应用,在给我们提供极大便利的同时,也面临着巨大的安全挑战。而在web安全风险中,xss(cross site scripting,跨站脚本攻击)的原理是,攻击者通过向web页面里插入恶意的脚本代码,当用户浏览这些网页时,就会执行嵌入其中的恶意脚本代码,从而达到攻击用户的目的。
3.xss的隐蔽性较强,攻击成本较低,扩散能力较强,利用该漏洞可以窃取用户cookie(储存在用户本地终端上的数据)、劫持会话、进行网络钓鱼等,危害较大。


技术实现要素:

4.本公开的一个目的在于提高xss漏洞检测的效率。
5.根据本公开的一些实施例的一个方面,提出一种漏洞检测方法,包括:确定目标页面中的潜在漏洞;根据潜在漏洞筛选目标注入位置;和,向目标注入位置注入攻击数据,以便根据攻击结果确定目标页面中的漏洞。
6.在一些实施例中,该方法还包括:在确定目标注入位置后,根据目标注入位置的上下文确定对应的攻击数据。
7.在一些实施例中,该方法还包括:根据目标网页对攻击数据的响应,生成更新数据;向目标注入位置注入更新数据,以便根据更新数据的攻击结果确定目标页面中的漏洞。
8.在一些实施例中,确定目标页面中的潜在漏洞包括:获取目标页面中的每个url(uniform resource locator,统一资源定位符),生成潜在漏洞url集合。
9.在一些实施例中,根据潜在漏洞筛选目标注入位置包括:针对url的每个输入点输入检测数据;和在目标页面中出现检测数据的情况下,确定对应的输入点属于目标注入位置。
10.在一些实施例中,针对url的每个输入点输入检测数据包括:针对潜在漏洞url集合中的每个url的每个输入点,随机生成字符串,并输入对应的输入点。
11.在一些实施例中,获取目标页面中的每个url包括以下至少一项:通过网络爬虫扫描目标页面,获取静态url;或提取页面的javascript脚本和通过javascript添加的事件,并使用javascript引擎编译执行,获取动态url。
12.在一些实施例中,根据目标注入位置的上下文确定对应的攻击数据包括:根据目标注入位置的上下文代码结构或内容中的至少一项生成对应的攻击数据。
13.在一些实施例中,根据目标网页对攻击数据的响应,生成更新数据包括:获取目标网页对攻击数据的响应;和根据响应对攻击数据执行预定变异处理,获取更新数据。
14.在一些实施例中,预定变异处理包括对攻击数据进行编码、大小写转换、插入预定符号或攻击向量二次生成中的至少一项。
15.在一些实施例中,该方法还包括:若攻击结果为攻击成功,则确定对应的攻击位置存在漏洞。
16.根据本公开的一些实施例的一个方面,提出一种漏洞检测装置,包括:潜在漏洞确定单元,被配置为确定目标页面中的潜在漏洞;注入位置筛选单元,被配置为根据潜在漏洞筛选目标注入位置;和攻击单元,被配置为向目标注入位置注入攻击数据,以便根据攻击结果确定目标页面中的漏洞。
17.在一些实施例中,该装置还包括:攻击数据确定单元,被配置为在确定目标注入位置后,根据目标注入位置的上下文确定对应的攻击数据。
18.在一些实施例中,该装置还包括:更新数据生成单元,被配置为根据目标网页对攻击数据的响应,生成更新数据;攻击单元被配置为向目标注入位置注入更新数据,以便根据更新数据的攻击结果确定目标页面中的漏洞。
19.在一些实施例中,该装置还包括:漏洞检测单元,被配置为在攻击结果为攻击成功的情况下,则确定对应的攻击位置存在漏洞。
20.根据本公开的一些实施例的一个方面,提出一种漏洞检测装置,包括:存储器;以及耦接至存储器的处理器,处理器被配置为基于存储在存储器的指令执行上文中任意一种漏洞检测方法。
21.根据本公开的一些实施例的一个方面,提出一种非瞬时性计算机可读存储介质,其上存储有计算机程序指令,该指令被处理器执行时实现上文中任意一种漏洞检测方法的步骤。
附图说明
22.此处所说明的附图用来提供对本公开的进一步理解,构成本公开的一部分,本公开的示意性实施例及其说明用于解释本公开,并不构成对本公开的不当限定。在附图中:
23.图1为本公开的漏洞检测方法的一些实施例的流程图。
24.图2为本公开的漏洞检测方法的另一些实施例的流程图。
25.图3为本公开的漏洞检测方法的又一些实施例的流程图。
26.图4为本公开的漏洞检测装置的一些实施例的示意图。
27.图5为本公开的漏洞检测装置的另一些实施例的示意图。
28.图6为本公开的漏洞检测装置的又一些实施例的示意图。
具体实施方式
29.下面通过附图和实施例,对本公开的技术方案做进一步的详细描述。
30.发明人发现,相关技术中动态检测xss漏洞的方法,其攻击向量的冗余较大,无效检测较多,存在效率上的不足;且需要收集较多信息,以建立数据集,检测效果比较依赖于训练数据集的质量,检测质量不稳定。
31.本公开的漏洞检测方法的一些实施例的流程图如图1所示。
32.在步骤120中,执行漏洞检测装置确定目标页面中的潜在漏洞。在一些实施例中,上述漏洞检测装置可以为执行计算机程序的设备。
33.在一些实施例中,可以获取目标页面中的每个url,生成潜在漏洞url集合,作为后
续需要处理的潜在漏洞。
34.在一些实施例中,可以利用爬虫进行页面扫描,或通过脚本、事件分析的方式,提取页面中的url。
35.在步骤140中,根据潜在漏洞筛选后续检测中攻击数据的目标注入位置。在一些实施例中,目标注入位置属于每个潜在漏洞中的输入点的位置,输入点包括参数、表单等输入位置。在一些实施例中,每个潜在漏洞url中可能具备多个漏洞,通过对潜在漏洞进一步拆解分析,获取多个目标注入位置,从而提高可靠性。在一些实施例中,提取潜在漏洞url中的每个输入点,作为目标注入位置的筛选空间。
36.在一些实施例中,部分潜在漏洞url中可能不具备能够影响目标页面的输入点,或并非每个输入点都能够影响目标页面,通过对潜在漏洞的拆解分析,能够获得多个攻击数据的可行的输入点,进而进行筛选,排除不影响目标页面的输入点,获得目标注入位置,从而减少后续工作量,提高检测效率。在一些实施例中,可以针对每个输入点分别生成检测数据,将检测数据输入对应的输入点,检测目标页面中是否出现了输入的检测数据。若出现了输入的检测数据,则该输入点属于目标注入位置;否则,排除该输入点。在一些实施例中,检测数据可以为随机生成字符串,通过检测目标页面中是否出现对应的字符串的方式判断目标页面中是否出现了输入的检测数据,从而提高输入点筛选的准确度,降低筛选错误的概率。
37.在一些实施例中,可以通过对潜在漏洞url集合中每个输入点执行上述检测,筛选出作为目标注入位置的输入点,进而执行后续操作,降低并行处理的业务种类数量,降低处理压力。
38.在另一些实施例中,可以在每确定一个目标注入位置后,针对该目标注入位置执行后续操作。对当前目标注入位置的后续操作可以与筛选其他目标注入位置的操作并行执行。通过这样的方法,能够尽早检测出漏洞,便于针对漏洞执行后续安全防护操作,提高目标页面的安全性。
39.在步骤160中,向目标注入位置注入攻击数据,以便根据攻击结果确定目标页面中存在的漏洞。在一些实施例中,可以采用相关技术中任意一种xss的攻击方式将攻击数据插入目标注入位置。
40.在一些实施例中,若攻击结果为攻击成功,则确定对应的攻击位置存在漏洞。在一些实施例中,可以针对确定的漏洞执行对应的漏洞排除操作,如修改页面代码或升级安全防护装置等。在一些实施例中,当注入攻击数据后,可以获得页面的响应,基于相关技术中的一个或多个解析器解析页面响应,判断是否攻击成功。
41.基于上述实施例中的方式,能够对目标页面进行预处理,降低检测冗余量大造成的处理压力,降低无价值的漏洞检测量,提高漏洞检测的效率。
42.本公开的漏洞检测方法的另一些实施例的流程图如图2所示。
43.在步骤220中,确定目标页面中的潜在漏洞。在一些实施例中,潜在漏洞包括静态url、动态url中的至少一种。在一些实施例中,可以通过网络爬虫扫描目标页面,获取静态url。在一些实施例中,提取页面的javascript脚本和通过javascript添加的事件,并使用javascript引擎编译执行,获取动态url。
44.在一些实施例中,可以汇总静态url和动态url,生成潜在漏洞url集合,进而在后
续步骤中针对潜在漏洞url集合中的每个url进行处理。
45.在步骤240中,根据潜在漏洞筛选目标注入位置。在一些实施例中,可以采用如上文步骤140中任意一种实施例中的方式筛选目标注入位置。
46.在步骤250中,在确定目标注入位置后,根据目标注入位置的上下文确定对应的攻击数据,使得攻击数据对于该目标注入位置更有针对性,提高攻击能力和攻击效率。
47.在一些实施例中,可以根据目标注入位置的上下文代码结构或内容中的至少一项生成对应的攻击数据。
48.在一些实施例中,可以预设多种xss攻击数据,分别与一种或多种类型的注入点上下文特点建立关联关系。在根据目标注入位置的上下文确定对应的攻击数据时,可以根据目标注入位置的上下文的特点与预存信息匹配,确定对应的攻击数据。通过这样的方法,能够提高攻击数据的生成效率。在一些实施例中,当匹配不成功时,可以根据目标注入位置的上下文实时生成攻击数据,如人工生成或通过预训练的机器学习算法生成,从而确保对每个目标注入位置生成对应的攻击数据,提高漏洞检测的全面性。
49.在步骤260中,向目标注入位置注入攻击数据,以便根据攻击结果确定目标页面中存在的漏洞。若攻击结果为攻击成功,则确定对应的攻击位置存在漏洞。
50.通过这样的方法,能够针对每个目标注入位置生成有针对性的攻击数据,提高攻击成功的概率,从而进一步降低无效检测的比例,提高漏洞检出率和效率。
51.在一些实施例中,若攻击结果为攻击不成功,则可以认为当前目标注入位置无漏洞。在另一些实施例中,可以进一步执行步骤270-280。
52.在步骤270中,根据目标网页对攻击数据的响应,生成更新数据。在一些实施例中,可以仅针对未能攻击成功的目标注入位置执行步骤270,从而降低检测的运算量。在另一些实施例中,可以针对全部目标注入位置执行步骤270,从而有利于对于已发现的漏洞获得更多特点信息,为后续进行安全升级提供更多的数据支持。
53.在一些实施例中,可以先获取目标网页对攻击数据的响应,进而根据响应对攻击数据执行预定变异处理,获取更新数据。在一些实施例中,预定变异处理包括对攻击数据进行编码、大小写转换、插入预定符号或攻击向量二次生成中的至少一项。通过这样的方法,能够采用基于已有的攻击数据进行编译处理的方式进行攻击数据更新,降低生成攻击数据的运算量;能够通过变异处理提高绕过目标网页的安全防护策略的概率,提高漏洞的检出率。
54.在步骤280中,向目标注入位置注入更新数据,以便根据更新数据的攻击结果确定目标页面中存在的漏洞。若攻击结果为攻击成功,则确定对应的攻击位置存在漏洞。在一些实施例中,若攻击结果为攻击失败,则可以确定对应的目标注入位置无漏洞。在另一些实施例中,也可以根据需要对攻击数据进行进一步的变异处理,再次注入目标注入位置,进一步提高漏洞的检出率。
55.基于上文实施例中的方法,能够通过二次攻击的方式,对目标注入位置进行进一步的检测,以便绕过防护机制,提高漏洞的检出率,从而为目标页面的安全升级提供更多的数据支持。
56.本公开的漏洞检测方法的又一些实施例的流程图如图3所示。
57.在步骤320中,获取目标页面中的每个url,生成潜在漏洞url集合。在一些实施例
中,使用网络爬虫对目标页面进行扫描,同时提取页面中的javascript脚本和javascript添加的事件,对提取的脚本和事件进行解析,得到一个动态url。综合静态、动态url,生成潜在漏洞url集合。在一些实施例中,可以将获得的了潜在漏洞url集合存储到哈希表中,方便进一步处理。
58.在一些实施例中,还可以针对潜在漏洞url集合进行进一步筛选,判断潜在漏洞url集合中的每个url是否存在html(hyper text markup language,超文本标记语言)请求,排除不存在html请求的url,使潜在漏洞url集合中仅包含存在html请求的url,作为后续步骤中处理的地址空间,从而进一步降低后续处理中的无效操作,提高检测效率。
59.针对潜在漏洞url集合中的每个url的每个输入点,执行步骤341~344中的操作。
60.在步骤341中,针对每个url的每个输入点,随机生成字符串,并输入对应的输入点。在一些实施例中,对潜在漏洞url集合中的每个url,使用一个随机字符串对其中的参数、表单等输入点进行注入检测,进一步在步骤342中判断对应的随机字符串是否会出现在页面的响应内容中。
61.在步骤342中,若对应的随机字符串出现在页面的响应内容中,则执行步骤343;否则,执行步骤344。
62.在步骤343中,确定对应的输入点属于目标注入位置,对该输入点执行步骤350中的操作。
63.在步骤344中,排除对应的输入点,不对该输入点执行步骤350中的操作。
64.在步骤350中,根据目标注入位置的上下文代码结构或内容中的至少一项生成对应的攻击数据。在一些实施例中,通过解析页面html结构,提取输入点所在位置的最小对象,探测内容相对位置、上下文代码结构、应用过滤机制等,生成能够绕过过滤机制的攻击数据,在一些实施例中,该攻击数据可以为对目标页面具有攻击性的访问请求。
65.在步骤360中,向目标注入位置注入攻击数据。在一些实施例中,可以采用浏览器提交承载了攻击数据的、对目标页面具有攻击性的访问请求,进而从页面返回的内容来判断是否检测出漏洞。在一些实施例中,判断是否检测出漏洞可以采用相关技术中任意一种方式。
66.基于上文所示实施例中的方式,能够在攻击前对于攻击位置进行筛选处理,降低无效攻击的数量,提高攻击效率;生成有针对性的攻击数据,提高对于攻击位置的自适应调节能力,提高漏洞的检出率和漏洞检测效率。
67.在一些实施例中,如图3所示,本公开的漏洞检测方法还可以包括步骤371-380。
68.在步骤371中,获取目标网页对攻击数据的响应。在一些实施例中,目标网页对攻击数据的响应可以为页面响应内容。
69.在步骤372中,根据响应对攻击数据执行预定变异处理,获取更新数据。在一些实施例中,根据响应分析防护过滤规则,进而采用有针对性的处理方式对攻击数据进行变异处理。在一些实施例中,预定变异处理的方式可以包括字符编码,大小写转换,空字节,关键字变形等,可以从中选择一种或多种方式处理攻击数据。在一些实施例中,也可以随机选择变异处理的方式。
70.在步骤380中,向目标注入位置注入更新数据,以便根据更新数据的攻击结果确定目标页面中存在的漏洞。若攻击结果为攻击成功,则确定对应的攻击位置存在漏洞。在一些
实施例中,若攻击结果为攻击失败,则可以确定对应的目标注入位置无漏洞。在另一些实施例中,也可以根据需要对攻击数据进行进一步的变异处理,再次注入目标注入位置,进一步提高漏洞的检出率。
71.通过这样的方法,能够尝试绕过应用过滤机制和网站防护软件,提高漏洞的检出率,从而有针对性的进行防护升级,提高目标页面的安全性。
72.本公开的漏洞检测装置40的一些实施例的示意图如图4所示。
73.潜在漏洞确定单元41能够确定目标页面中的潜在漏洞。在一些实施例中,可以获取目标页面中的每个url,生成潜在漏洞url集合,作为后续需要处理的潜在漏洞。在一些实施例中,可以利用爬虫进行页面扫描,或通过脚本、事件分析的方式,提取页面中的url。
74.注入位置确定单元42能够根据潜在漏洞筛选目标注入位置。在一些实施例中,目标注入位置属于每个潜在漏洞中的输入点的位置,输入点包括参数、表单等输入位置。在一些实施例中,每个潜在漏洞url中可能具备多个漏洞,通过对潜在漏洞进一步拆解分析,获取多个目标注入位置,从而提高可靠性。在一些实施例中,提取潜在漏洞url中的每个输入点,作为目标注入位置的筛选空间。在一些实施例中,部分潜在漏洞url中可能不具备能够影响目标页面的输入点,或并非每个输入点都能够影响目标页面,通过对潜在漏洞的拆解分析,能够获得多个攻击数据的可行的输入点,进而进行筛选,排除不影响目标页面的输入点,获得目标注入位置,从而减少后续工作量,提高检测效率。
75.攻击单元43能够向目标注入位置注入攻击数据,以便根据攻击结果确定目标页面中存在的漏洞。
76.这样的装置能够对目标页面进行预处理,降低检测冗余量大造成的处理压力,降低无价值的攻击量,提高漏洞检测效率。
77.在一些实施例中,如图4所示,漏洞检测装置还可以包括攻击数据确定单元44,能够在确定目标注入位置后,根据目标注入位置的上下文确定对应的攻击数据,使得攻击数据对于该目标注入位置更有针对性,提高攻击能力和攻击效率。
78.在一些实施例中,可以根据目标注入位置的上下文代码结构或内容中的至少一项生成对应的攻击数据。在一些实施例中,可以预设多种xss攻击数据,分别与一种或多种类型的注入点上下文特点建立关联关系。在根据目标注入位置的上下文确定对应的攻击数据时,可以根据目标注入位置的上下文的特点与预存信息匹配,确定对应的攻击数据。通过这样的方法,能够提高攻击数据的生成效率。在一些实施例中,当匹配不成功时,可以根据目标注入位置的上下文实时生成攻击数据,如人工生成或通过预训练的机器学习算法生成,从而确保对每个目标注入位置生成对应的攻击数据,提高漏洞检测的全面性。
79.这样的装置能够针对每个目标注入位置生成有针对性的攻击数据,提高攻击成功的概率,从而进一步降低无效检测的比例,提高漏洞检出率和效率。
80.在一些实施例中,如图4所示,漏洞检测装置还可以包括更新数据生成单元45能够根据目标网页对攻击数据的响应,生成更新数据。在一些实施例中,可以先获取目标网页对攻击数据的响应,进而根据响应对攻击数据执行预定变异处理,获取更新数据。在一些实施例中,预定变异处理包括对攻击数据进行编码、大小写转换、插入预定符号或攻击向量二次生成中的至少一项。
81.攻击单元43能够向目标注入位置注入更新数据,以便根据更新数据的攻击结果确
定目标页面中存在的漏洞。
82.这样的装置能够通过二次漏洞检测的方式,对目标注入位置进行进一步的攻击,以便绕过防护机制,提高漏洞的检出率,从而为目标页面的安全升级提供更多的数据支持。
83.在一些实施例中,如图4所示,漏洞检测装置还可以包括漏洞检测单元46,能够在攻击结果为攻击成功的情况下,则确定对应的攻击位置存在漏洞。在一些实施例中,漏洞检测单元46能够获得页面的响应,基于相关技术中的一个或多个解析器解析页面响应,判断是否攻击成功。在一些实施例中,当未能攻击成功时,漏洞检测单元46可以确定对应位置未检出漏洞,或触发更新数据生成单元45生成二次攻击所需的数据。在一些实施例中,漏洞检测单元46还可以基于得到的页面的响应和采用的攻击数据执行漏洞特点分析,为后续漏洞排除提供更加全面的信息,以便执行有针对性的修复,提高修复效率。
84.基于上述实施例中的方式,能够根据页面的响应确定是否存在漏洞,并在未能检出漏洞的情况下及时触发二次攻击或输出未检出漏洞的结果,提高漏洞检出的完整性,为后续执行漏洞排除提供数据基础。
85.本公开漏洞检测装置的一个实施例的结构示意图如图5所示。漏洞检测装置包括存储器501和处理器502。其中:存储器501可以是磁盘、闪存或其它任何非易失性存储介质。存储器用于存储上文中漏洞检测方法的对应实施例中的指令。处理器502耦接至存储器501,可以作为一个或多个集成电路来实施,例如微处理器或微控制器。该处理器502用于执行存储器中存储的指令,能够提高漏洞检测的效率。
86.在一个实施例中,还可以如图6所示,漏洞检测装置600包括存储器601和处理器602。处理器602通过bus总线603耦合至存储器601。该漏洞检测装置600还可以通过存储接口604连接至外部存储装置605以便调用外部数据,还可以通过网络接口606连接至网络或者另外一台计算机系统(未标出)。此处不再进行详细介绍。
87.在该实施例中,通过存储器存储数据指令,再通过处理器处理上述指令,能够提高漏洞检测的效率。
88.在另一个实施例中,一种计算机可读存储介质,其上存储有计算机程序指令,该指令被处理器执行时实现漏洞检测方法对应实施例中的方法的步骤。本领域内的技术人员应明白,本公开的实施例可提供为方法、装置、或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用非瞬时性存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
89.本公开是参照根据本公开实施例的方法、设备(系统)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
90.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或
多个方框中指定的功能。
91.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
92.至此,已经详细描述了本公开。为了避免遮蔽本公开的构思,没有描述本领域所公知的一些细节。本领域技术人员根据上面的描述,完全可以明白如何实施这里公开的技术方案。
93.可能以许多方式来实现本公开的方法以及装置。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本公开的方法以及装置。用于所述方法的步骤的上述顺序仅是为了进行说明,本公开的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本公开实施为记录在记录介质中的程序,这些程序包括用于实现根据本公开的方法的机器可读指令。因而,本公开还覆盖存储用于执行根据本公开的方法的程序的记录介质。
94.最后应当说明的是:以上实施例仅用以说明本公开的技术方案而非对其限制;尽管参照较佳实施例对本公开进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本公开的具体实施方式进行修改或者对部分技术特征进行等同替换;而不脱离本公开技术方案的精神,其均应涵盖在本公开请求保护的技术方案范围当中。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献