首页 / 专利库 / 电脑安全 / 跨站请求伪造 / 一种跨站漏洞扫描方法及系统

一种跨站漏洞扫描方法及系统

阅读:106发布:2020-05-24

专利汇可以提供一种跨站漏洞扫描方法及系统专利检索,专利查询,专利分析的服务。并且本 发明 提出了一种跨站漏洞扫描方法及系统,所述方法包括如下步骤:对目标 站点 的全站或单页面的链接进行爬取;对爬取得到的链接以预设条件进行过滤,以得到多个潜在跨站漏洞链接;采用攻击向量对每个所述潜在跨站漏洞链接进行模糊测试;在模糊测试过程中,采用浏览器 内核 对每个所述潜在跨站漏洞链接的网页源码进行动态解析,以判断所述潜在跨站漏洞链接是否存在跨站漏洞;将存在跨站漏洞的链接和对应加载的攻击向量保存至 数据库 。本发明可以提供高效率、误报率低、扫描全面的跨站漏洞检测方法及系统。,下面是一种跨站漏洞扫描方法及系统专利的具体信息内容。

1.一种跨站漏洞扫描方法,其特征在于,包括如下步骤:
对目标站点的全站或单页面的链接进行爬取;
对爬取得到的链接以预设条件进行过滤,以得到多个潜在跨站漏洞链接;
采用攻击向量对每个所述潜在跨站漏洞链接进行模糊测试;
在模糊测试过程中,采用浏览器内核对每个所述潜在跨站漏洞链接的网页源码进行动态解析,以判断所述潜在跨站漏洞链接是否存在跨站漏洞;
将存在跨站漏洞的链接和对应加载的攻击向量保存至数据库
2.如权利要求1所述的跨站漏洞扫描方法,其特征在于,对爬取得到的链接以域名字段进行分组保存。
3.如权利要求1所述的跨站漏洞扫描方法,其特征在于,所述预设条件包括:重复功能链接、不具有可控输入点的链接、不属于目标站点的链接,
过滤掉符合所述预设条件的链接,将剩余链接设为潜在跨站漏洞链接。
4.如权利要求1所述的跨站漏洞扫描方法,其特征在于,对每个所述潜在跨站漏洞链接,采用攻击向量从攻击向量规则库选取对应的测试规则进行模糊测试,直至浏览器内核判断所述潜在跨站漏洞链接存在跨站漏洞,将存在跨站漏洞的链接和对应加载的攻击向量保存至数据库;
如果所述潜在跨站漏洞链接在经过攻击向量规则库中的所有测试规则的模糊测试后,所述浏览器内核仍判断所述潜在跨站漏洞链接不存在跨站漏洞,则结束对该潜在漏洞连接的模糊测试,将该不存在跨站漏洞的链接保存至数据库;
其中,攻击向量对所述潜在跨站漏洞链接进行模糊测试,包括:伪造并向所述潜在跨站漏洞链接发送带有攻击向量请求,当所述浏览器内核判断所述潜在跨站漏洞链接存在跨站漏洞时,则停止模糊测试,否则从所述攻击向量规则库中选择下一条测试规则对该潜在跨站漏洞链接进行模糊测试。
5.如权利要求1-4任一项所述的跨站漏洞扫描方法,其特征在于,还包括如下步骤:模糊测试过程结束后,根据模糊测试结果生成检测报告,其中,所述检测报告包括:存在跨站漏洞的链接和对应加载的攻击向量,不存在跨站漏洞的链接。
6.一种跨站漏洞扫描系统,其特征在于,包括:
网页爬虫模,用于对目标站点的全站或单页面的链接进行爬取;
链接过滤试探模块,用于对爬取得到的链接以预设条件进行过滤,以得到多个潜在跨站漏洞链接;
攻击向量测试模块,用于采用攻击向量从内置的攻击向量规则库中选取对应的测试规则,对每个所述潜在跨站漏洞链接进行模糊测试;
浏览器内核,用于在模糊测试过程中对每个所述潜在跨站漏洞链接的网页源码进行动态解析,以判断所述潜在跨站漏洞链接是否存在跨站漏洞;
数据库,用于存储存在跨站漏洞的链接和对应加载的攻击向量。
7.如权利要求6所述的跨站漏洞扫描系统,其特征在于,所述网页爬虫模块还用于对爬取得到的链接以域名字段进行分组保存。
8.如权利要求6所述的跨站漏洞扫描系统,其特征在于,所述预设条件包括:重复功能链接、不具有可控输入点的链接、不属于目标站点的链接,
所述链接过滤试探模块过滤掉符合所述预设条件的链接,将剩余链接设为潜在跨站漏洞链接。
9.如权利要求6所述的跨站漏洞扫描系统,其特征在于,对每个所述潜在跨站漏洞链接,所述攻击向量测试模块采用攻击向量从攻击向量规则库中选取对应的测试规则进行模糊测试,直至所述浏览器内核判断所述潜在跨站漏洞链接存在跨站漏洞,将存在跨站漏洞的链接和对应加载的攻击向量保存至数据库;
如果所述潜在跨站漏洞链接在经过攻击向量规则库中的所有测试规则的模糊测试后,所述浏览器内核仍判断所述潜在跨站漏洞链接不存在跨站漏洞,则所述攻击向量测试模块结束对该潜在漏洞连接的模糊测试,将该不存在跨站漏洞的链接保存至数据库;
其中,所述攻击向量测试模块采用攻击向量对所述潜在跨站漏洞链接进行模糊测试,包括:伪造并向所述潜在跨站漏洞链接发送带有攻击向量请求,当所述浏览器内核判断所述潜在跨站漏洞链接存在跨站漏洞时,则停止模糊测试,否则从所述攻击向量规则库中选择下一条测试规则对该潜在跨站漏洞链接进行模糊测试。
10.如权利要求6-9任一项所述的跨站漏洞扫描系统,其特征在于,还包括:
报告生成模块,用于在所述攻击向量测试模块模糊测试过程结束后,根据模糊测试结果生成检测报告,其中,所述检测报告包括:存在跨站漏洞的链接和对应加载的攻击向量,不存在跨站漏洞的链接。

说明书全文

一种跨站漏洞扫描方法及系统

技术领域

[0001] 本发明涉及网络安全技术领域,特别涉及一种跨站漏洞扫描方法及系统。

背景技术

[0002] 近年来,随着互联网技术的飞速发展,越来越多的用户将其关键业务基于Web应用。在通过使用浏览器实现各式各样信息的展现和与Web服务器交互的同时,这些关键业务所受到的安全威胁也随之而来。除此之外,由于用户业务系统的复杂性及网络环境的可变性,Web安全问题也被越来越多的用户所重视。
[0003] 跨站漏洞和SQL注入漏洞已经成为威胁Web安全的两大头等漏洞。通过跨站漏洞可以实施挂、窃取各类系统的账号、篡改或删除后台数据、窃取系统敏感数据、钓鱼攻击等,危害用户的数据安全。
[0004] 目前,检测跨站漏洞主要采用静态扫描和规则库比对技术,分别存在以下问题:
[0005] (1)静态扫描:跨站代码基于HTML语言,HTML语言具有语法松散的特点,跨站代码实现有多种方法。随着HTML5技术的应用与发展,越来越多的属性和方法应用在Web应用中,丰富了用户体验。但与此同时也增加了更多的跨站攻击方法。跨站代码属于脚本语言,运行于客户端(浏览器)中,采用的是动态运行机制,静态扫描技术无法检测到DOM型跨站漏洞。
[0006] (2)规则库比对技术无法针对变形跨站代码与新增的跨站攻击方法。
[0007] 综上,常规的跨站漏洞检测技术具有漏报率高、误报率高的缺陷。并且现有的跨站漏洞扫描工具基于单线程或单线程,效率低下,只能针对单一网址,不能针对整站检测跨站漏洞。

发明内容

[0008] 本发明的目的旨在至少解决所述技术缺陷之一。
[0009] 为此,本发明的目的在于提出一种跨站漏洞扫描方法及系统,可以实现高效率、误报率低、扫描全面的跨站漏洞检测。
[0010] 为了实现上述目的,本发明一方面的实施例提供一种跨站漏洞扫描方法,包括如下步骤:
[0011] 对目标站点的全站或单页面的链接进行爬取;
[0012] 对爬取得到的链接以预设条件进行过滤,以得到多个潜在跨站漏洞链接;
[0013] 采用攻击向量对每个所述潜在跨站漏洞链接进行模糊测试;
[0014] 在模糊测试过程中,采用浏览器内核对每个所述潜在跨站漏洞链接的网页源码进行动态解析,以判断所述潜在跨站漏洞链接是否存在跨站漏洞;
[0015] 将存在跨站漏洞的链接和对应加载的攻击向量保存至数据库
[0016] 在本发明的一个实施例中,对爬取得到的链接以域名字段进行分组保存。
[0017] 在本发明的又一个实施例中,所述预设条件包括:重复功能链接、不具有可控输入点的链接、不属于目标站点的链接,过滤掉符合所述预设条件的链接,将剩余链接设为潜在跨站漏洞链接。
[0018] 在本发明的在一个实施例中,对每个所述潜在跨站漏洞链接,采用攻击向量从攻击向量规则库选取对应的测试规则进行模糊测试,直至浏览器内核判断所述潜在跨站漏洞链接存在跨站漏洞,将存在跨站漏洞的链接和对应加载的攻击向量保存至数据库;
[0019] 如果所述潜在跨站漏洞链接在经过攻击向量规则库中的所有测试规则的模糊测试后,所述浏览器内核仍判断所述潜在跨站漏洞链接不存在跨站漏洞,则结束对该潜在漏洞连接的模糊测试,将该不存在跨站漏洞的链接保存至数据库;
[0020] 其中,攻击向量对所述潜在跨站漏洞链接进行模糊测试,包括:伪造并向所述潜在跨站漏洞链接发送带有攻击向量请求,当所述浏览器内核判断所述潜在跨站漏洞链接存在跨站漏洞时,则停止模糊测试,否则从所述攻击向量规则库中选择下一条测试规则对该潜在跨站漏洞链接进行模糊测试。
[0021] 在本发明的一个实施例中,还包括如下步骤:模糊测试过程结束后,根据模糊测试结果生成检测报告,其中,所述检测报告包括:存在跨站漏洞的链接和对应加载的攻击向量,不存在跨站漏洞的链接。
[0022] 本发明另一方面实施例提供一种跨站漏洞扫描系统,包括:网页爬虫模,用于对目标站点的全站或单页面的链接进行爬取;链接过滤试探模块,用于对爬取得到的链接以预设条件进行过滤,以得到多个潜在跨站漏洞链接;攻击向量测试模块,用于采用攻击向量从内置的攻击向量规则库中选取对应的测试规则,对每个所述潜在跨站漏洞链接进行模糊测试;浏览器内核,用于在模糊测试过程中对每个所述潜在跨站漏洞链接的网页源码进行动态解析,以判断所述潜在跨站漏洞链接是否存在跨站漏洞;数据库,用于存储存在跨站漏洞的链接和对应加载的攻击向量。
[0023] 在本发明的一个实施例中,所述网页爬虫模块还用于对爬取得到的链接以域名字段进行分组保存。
[0024] 在本发明的又一个实施例中,所述预设条件包括:重复功能链接、不具有可控输入点的链接、不属于目标站点的链接,所述链接过滤试探模块过滤掉符合所述预设条件的链接,将剩余链接设为潜在跨站漏洞链接。
[0025] 在本发明的再一个实施例中,对每个所述潜在跨站漏洞链接,所述攻击向量测试模块采用攻击向量从攻击向量规则库中选取对应的测试规则进行模糊测试,直至所述浏览器内核判断所述潜在跨站漏洞链接存在跨站漏洞,将存在跨站漏洞的链接和对应加载的攻击向量保存至数据库;如果所述潜在跨站漏洞链接在经过攻击向量规则库中的所有测试规则的模糊测试后,所述浏览器内核仍判断所述潜在跨站漏洞链接不存在跨站漏洞,则所述攻击向量测试模块结束对该潜在漏洞连接的模糊测试,将该不存在跨站漏洞的链接保存至数据库;其中,所述攻击向量测试模块采用攻击向量对所述潜在跨站漏洞链接进行模糊测试,包括:伪造并向所述潜在跨站漏洞链接发送带有攻击向量请求,当所述浏览器内核判断所述潜在跨站漏洞链接存在跨站漏洞时,则停止模糊测试,否则从所述攻击向量规则库中选择下一条测试规则对该潜在跨站漏洞链接进行模糊测试。
[0026] 在本发明的一个实施例中,还包括:报告生成模块,用于在所述攻击向量测试模块模糊测试过程结束后,根据模糊测试结果生成检测报告,其中,所述检测报告包括:存在跨站漏洞的链接和对应加载的攻击向量,不存在跨站漏洞的链接。
[0027] 根据本发明实施例的跨站漏洞扫描方法及系统,可覆盖各类网站的业务,同爬取、链接过滤部分、攻击向量测试等相互融合,协调工作,以扫描目标网站环境,检测跨站漏洞,具有效率高、误报率低、扫描全面的特点,可以为企业与个人提供技术支持,保障网站安全。
[0028] 本发明提供的跨站漏洞扫描方法及系统具有以下有益效果:
[0029] (1)误报率低,引入WebKit浏览器引擎,通过WebKit浏览器引擎模拟脚本代码执行,接管WebKit底层函数,可以非常准确地判定输入流是否存在跨站漏洞;
[0030] (2)漏报率低,根据开发者对Web安全和跨站漏洞的多年研发,总结出检测跨站的大量心得与测试用例,结合开源的测试用例,可以组建强大的攻击向量规则库;
[0031] (3)检测效率高在整站爬取中采用多线程技术,在跨站漏洞检测中采用了多进程+多线程的检测技术。在短时间内可以检测更多的跨站漏洞,节省时间,提高工作效率。在链接过滤中运用了URL相似度检测算法,去除重复或特征串类似的链接,可以节省漏洞检测的时间,提高工作效率;
[0032] (4)详尽的日志报表,在扫描结束后,给出整站或单一目标的所有跨站类型统计,跨站攻击测试用例,以及整改方案,方便企业与个人制定WEB加固措施。
[0033] 本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。附图说明
[0034] 本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
[0035] 图1为根据本发明优选实施方式的跨站漏洞扫描方法的流程图
[0036] 图2为根据本发明另一种实施方式的跨站漏洞扫描方法的流程图;
[0037] 图3为根据本发明又一种实施方式的跨站漏洞扫描方法的流程图;
[0038] 图4为根据本发明优选实施反式的跨站漏洞扫描系统的结构图;
[0039] 图5为根据本发明另一种实施方式的跨站漏洞扫描系统的结构图。

具体实施方式

[0040] 下面详细描述本发明的实施例,实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
[0041] 本发明提供一种效率高、误报率低、扫描全面的跨站漏洞扫描方法及系统,可以支持对多种跨站漏洞的扫描。例如,反射型(Reflected-XSS)、存储型(Stored-XSS)、DOM(DOM-XSS)跨站漏洞。
[0042] 如图1所示,本发明实施例的跨站漏洞扫描方法,包括如下步骤:
[0043] 步骤S1,对目标站点的全站或单页面的链接进行爬取。
[0044] 首先,确定待扫描的目标站点的全站或单页面,获取该目标的Cookie信息。
[0045] 然后,对该目标站点的全站或单页面的数据链接进行爬取并保存,在保存的过程中,由域名字段将不同的域名下的链接保存起来,即对爬取得到的链接以域名字段进行分组保存,以便在过滤及检测的过程中可以有效地区别目标域下的链接,到达更好更快的效果。
[0046] 需要说明的是,上述爬取得到的数据可以永久的保存起来,以便后期需要时查询。如果后期需要上述数据,可以根据域名查询对应的数据链接。
[0047] 下面以新浪微博为例对爬取过程进行说明。
[0048] 由爬虫模块执行爬取过程,爬虫模块以http://www.weibo.com(新浪微博主页URL地址)为入口,登录进入上述新浪微博。设置爬行深度为4,将网页中的所有链接进行爬取和保存。例如,个人主页的URL地址、发表微博的URL地址、转发微博的URL地址、上传头像的URL地址和设置个人资料的URL地址等。
[0049] 步骤S2,对爬取得到的链接以预设条件进行过滤,以得到多个潜在跨站漏洞链接。其中,潜在跨站漏洞链接即为可能存在跨站漏洞的链接。
[0050] 在本发明的实施例中,预设条件为包括:重复功能链接、不具有可控输入点的链接、不属于目标站点的链接。
[0051] 具体地,对步骤S1中爬取得到的所有链接进行过滤,将符合预设条件的链接过滤掉,将剩余链接设为潜在跨站漏洞链接。具体地,删除不具有可控输入点或者不属于目标站点的链接。如果有多条链接类似或者重复,则进行去重操作,保留一条链接。
[0052] 链接去重是爬虫运行中一项关键的步骤,由于运行中的爬虫主要阻塞在网络交互中,因此避免重复的网络交互至关重要。爬虫一般会将待抓取的链接放在一个队列中,从抓取后的网页中提取到新的URL地址。在链接被放入队列之前,首先要确定这些新的链接没有被抓取过,如果之前已经抓取过,就不再放入队列了。由此可以得到多条潜在跨站漏洞链接,保证跨站漏洞检测的准确性和目的性,提高工作效率。
[0053] 对步骤S1爬取到的链接进行链接去重过滤,继续以新浪微博链接为例,新浪微博链接为以下格式:http://weibo.com/微博ID/微博内容ID?type=comment
[0054] 只需要对这条链接检测是否存在跨站漏洞即可,而不必检测所有微博链接,其它同理。
[0055] 进一步,在得到上述潜在跨站漏洞链接后,对潜在跨站漏洞的输入点进行提取保存至数据库中。在本发明的一个实施例中,潜在跨站漏洞的输入点包括:链接和目标站点的表单等。其中,链接例如为新闻ID的新闻链接、包含有搜索关键字的链接等。目标站点的表单例如为评论框、表单等。
[0056] 步骤S3,采用攻击向量对每个潜在跨站漏洞链接进行模糊测试。
[0057] 具体地,针对潜在跨站漏洞链接所属的不同的目标站点全站或单页面,攻击向量从攻击向量规则库中选取不同的测试规则对该潜在跨站漏洞链接进行模糊测试。其中,攻击向量结合owasp、ibm等开源规则库,并结合开发者多年从业经验融合而成。
[0058] 例如,针对百度搜索:baidu.com这种搜索类型的网站,必须加载DOM型跨站的规则库(如:alert(1)),因为输入的数据主要呈现在js代码中,示例如下:
[0059]
[0062] 通过加载DOM型跨站的规则库,可以非常快速扫描出DOM型跨站漏洞:
[0063]
[0066] 例如,针对新浪微博:weibo.com这种网站,则建议加载存储型跨站的规则库,因为输入的数据主要呈现在HTML中,示例如下:
[0067]
这是一条微博
[0068] 通过加载存储型跨站的规则库(),就可以非常快速地扫描出存储型跨站漏洞:
[0069]
[0070] 针对不同的目标,需要前期做调查研究,如果输入的数据主要出现在js层,那么只需要加载DOM型跨站规则库就可以了;如果输入的数据主要出现在HTML层,那么就需要加载反射型和存储型跨站规则库;如果输入的数据同时会在JS层和HTML层出现,那么建议加载规则库及顺序为:存储型规则+反射型规则+DOM型规则。
[0071] 在本发明的一个实施例中,引入认证模块,可以爬取与检测需要用户登录凭证的链接与网址,并且提供攻击向量扩充接口,从而支持检测更多的跨站漏洞。
[0072] 步骤S4,在模糊测试过程中,采用浏览器内核对每个潜在跨站漏洞链接的网页源码进行动态解析,以判断潜在跨站漏洞链接是否存在跨站漏洞。
[0073] 在本发明的实施例中,采用WebKit浏览器引擎来解析运行攻击向量数据包进行跨站漏洞检测,以判断潜在跨站漏洞链接是否存在跨站漏洞。采用WebKit浏览器引擎进行解析,是由于网页代码(HTML、CSS、JS等)只能通过WebKit浏览器来解析运行,而跨站漏洞属于JS部分,所以只有加载WebKit浏览器,才能够将跨站漏洞运行起来。
[0074] 对跨站漏洞的检测过程采用模糊测试的方式来进行检测,通过获取不同网站的攻击向量,不断丰富该系统的规则库,然后利用该规则库中庞大的攻击向量,不断的伪造并发送网络请求,更加有效地判断目标页面是否存在跨站漏洞,提高了跨站漏洞检测的准确率。
[0075] 相比于现有的静态检测技术(例如抓取网页源码、字符串),采用WebKit浏览器引擎来模拟JavaScript脚本运行的真实环境,接管WebKit浏览器引擎的脚本处理函数onerror与alert,从浏览器底层层次来检测跨站漏洞,可以实现100%的判定跨站漏洞是否存在,准确率非常高。
[0076] 步骤S5,将存在跨站漏洞的链接和对应加载的攻击向量保存至数据库。
[0077] 对每个潜在跨站漏洞链接,采用攻击向量从攻击向量规则库中选取对应的测试规则进行模糊测试,直至浏览器内核判断潜在跨站漏洞链接存在跨站漏洞,将存在跨站漏洞的链接和对应加载的攻击向量保存至数据库。
[0078] 其中,攻击向量对潜在跨站漏洞链接进行模糊测试,包括:伪造并向潜在跨站漏洞链接发送带有攻击向量请求,当浏览器内核判断潜在跨站漏洞链接存在跨站漏洞时,则停止模糊测试,否则从所述攻击向量规则库中选择下一条测试规则对该潜在跨站漏洞链接进行模糊测试。
[0079] 即,如果检测到当前潜在跨站漏洞链接存在跨站漏洞,则将该链接及加载的攻击向量规则保存至数据库中,方便报表统计和漏洞重演,利于网站管理者实施整改方案。
[0080] 如果潜在跨站漏洞链接在经过攻击向量规则库中的所有测试规则的模糊测试后,浏览器内核仍判断潜在跨站漏洞链接不存在跨站漏洞,则结束对该潜在漏洞连接的模糊测试,将该不存在跨站漏洞的链接保存至数据库。
[0081] 即,如果潜在跨站漏洞链接不存在跨站漏洞,则加载攻击向量规则库中的其它规则,继续上面的流程。
[0082] 下面是针对一条链接的完整跨站漏洞检测流程:
[0083] (1)如目标weibo.com存在一个GET链接:
[0084] http://weibo.com/search.php?keyword=hello,其中hello为可控输入点,则可以将hello字符串替换为攻击向量规则库中的规则一:[0085] 组合成潜在跨站漏洞链接:
[0086] http://weibo.com/search.php?keyword=[0087] (2)使用WebKit浏览器来加载该潜在跨站漏洞链接,此时接管WebKit浏览器引擎的底层函数:alert,如果网页中有alert函数触发,那么就将当前的URL及攻击向量规则库保存至日志中。
[0088] (3)如果目标站点test.com的search.php文件未对输入的keyword进行编码或者过滤就呈现在网页中,那么必然会触发js的alert函数。此时,由于WebKit浏览器引擎的底层函数已经被接管,那么就可以非常准确的确定当前测试链接存在跨站漏洞。
[0089] (4)如果当前测试链接存在跨站漏洞,则将当前的测试链接及加载的攻击向量规则保存至数据库中,方便报表统计和漏洞重演,利于网站管理者实施整改方案;如果当前测试链接不存在跨站漏洞,则加载攻击向量规则库中的其它规则,继续上面的流程。
[0090] 在本发明的实施例中,针对单个站点进行检测,将该站点中的所有URL链接进行检测,在爬取(步骤S1)、URL链接过滤(步骤S2)阶段采用多线程,在跨站漏洞检测(步骤S3至S5)阶段则是采用的多进程多线程。
[0091] 如图2所示,在步骤S5之后,还包括如下步骤:
[0092] 步骤S6,模糊测试过程结束后,根据模糊测试结果生成检测报告。其中,检测报告包括:存在跨站漏洞的链接和对应加载的攻击向量,不存在跨站漏洞的链接。检测完后生成目标网站检测报告,能直观有效地看出检测效果,并且各个步骤都会生成日志信息,便于分析使用。
[0093] 图3为根据本发明又一种实施方式的跨站漏洞扫描方法的流程图。
[0094] 步骤S301,从data.db数据库中获取到所有潜在跨站漏洞链接、参数等。
[0095] data.db数据库中存储有经过爬取和过滤后得到的潜在跨站漏洞链接及相应的参数。
[0096] 步骤S302,取出一条数据。
[0097] 步骤S303,从rules.db数据库中获取所有的攻击向量。
[0098] 步骤S304,取出一条攻击向量。
[0099] 步骤S305,伪造并发送带有攻击向量的请求。
[0100] 步骤S306,判断是否存在XSS漏洞,如果是,则执行步骤S307,否则执行步骤S308。
[0101] 步骤S307,显示并打印漏洞详情,然后执行步骤S309。
[0102] 步骤S308,判断攻击向量是否用完,如果是,则执行步骤S309,否则返回步骤S304。
[0103] 步骤S309,判断潜在跨站漏洞链接是否都测试完,如果是,则结束流程,否则返回步骤S302。
[0104] 根据本发明实施例的跨站漏洞扫描方法,可覆盖各类网站的业务,同爬取、链接过滤部分、攻击向量测试等相互融合,协调工作,以扫描目标网站环境,检测跨站漏洞,具有效率高、误报率低、扫描全面的特点,可以为企业与个人提供技术支持,保障网站安全。
[0105] 本发明的跨站漏洞扫描方法具有以下有益效果:
[0106] (1)误报率低,引入WebKit浏览器引擎,通过WebKit浏览器引擎模拟脚本代码执行,接管WebKit底层函数,可以非常准确地判定输入流是否存在跨站漏洞;
[0107] (2)漏报率低,根据开发者对Web安全和跨站漏洞的多年研发,总结出检测跨站的大量心得与测试用例,结合开源的测试用例,可以组建强大的攻击向量规则库;
[0108] (3)检测效率高在整站爬取中采用多线程技术,在跨站漏洞检测中采用了多进程+多线程的检测技术。在短时间内可以检测更多的跨站漏洞,节省时间,提高工作效率。在链接过滤中运用了URL相似度检测算法,去除重复或特征串类似的链接,可以节省漏洞检测的时间,提高工作效率;
[0109] (4)详尽的日志报表,在扫描结束后,给出整站或单一目标的所有跨站类型统计,跨站攻击测试用例,以及整改方案,方便企业与个人制定WEB加固措施。
[0110] 如图4所示,本发明还提出一种跨站漏洞扫描系统,包括:网页爬虫模块1、链接过滤试探模块2、攻击向量测试模块3、浏览器内核4和数据库5。
[0111] 具体地,网页爬虫模块1用于对目标站点的全站或单页面的链接进行爬取。
[0112] 首先,确定待扫描的目标站点的全站或单页面,获取该目标的Cookie信息。然后,网页爬虫模块1对该目标站点的全站或单页面的数据链接进行爬取并保存,在保存的过程中,由域名字段将不同的域名下的链接保存起来,即网页爬虫模块1对爬取得到的链接以域名字段进行分组保存,以便在过滤及检测的过程中可以有效地区别目标域下的链接,到达更好更快的效果。
[0113] 需要说明的是,上述爬取得到的数据可以永久的保存起来,以便后期需要时查询。如果后期需要上述数据,可以根据域名查询对应的数据链接。
[0114] 链接过滤试探模块2用于对爬取得到的链接以预设条件进行过滤,以得到多个潜在跨站漏洞链接。
[0115] 在本发明的实施例中,预设条件包括:重复功能链接、不具有可控输入点的链接、不属于目标站点的链接。
[0116] 链接过滤试探模块2过滤掉符合预设条件的链接,将剩余链接设为潜在跨站漏洞链接。将符合预设条件的链接过滤掉,将剩余链接设为潜在跨站漏洞链接。具体地,链接过滤试探模块2过删除不具有可控输入点或者不属于目标站点的链接。如果有多条链接类似或者重复,则进行去重操作,保留一条链接。
[0117] 进一步,在得到上述潜在跨站漏洞链接后,对潜在跨站漏洞的输入点进行提取保存至数据库5中。在本发明的一个实施例中,潜在跨站漏洞的输入点包括:链接和目标站点的表单等。其中,链接例如为新闻ID的新闻链接、包含有搜索关键字的链接等。目标站点的表单例如为评论框、表单等。
[0118] 攻击向量测试模块3用于采用攻击向量从内置的攻击向量规则库中选取对应的测试规则,对每个潜在跨站漏洞链接进行模糊测试。
[0119] 具体地,针对潜在跨站漏洞链接所属的不同的目标站点全站或单页面,攻击向量从攻击向量规则库中选取不同的测试规则对该潜在跨站漏洞链接进行模糊测试。其中,攻击向量结合owasp、ibm等开源规则库,并结合开发者多年从业经验融合而成。
[0120] 针对不同的目标,需要前期做调查研究,如果输入的数据主要出现在js层,那么只需要加载DOM型跨站规则库就可以了;如果输入的数据主要出现在HTML层,那么就需要加载反射型和存储型跨站规则库;如果输入的数据同时会在JS层和HTML层出现,那么建议加载规则库及顺序为:存储型规则+反射型规则+DOM型规则。
[0121] 浏览器内核4用于在模糊测试过程中对每个潜在跨站漏洞链接的网页源码进行动态解析,以判断潜在跨站漏洞链接是否存在跨站漏洞。
[0122] 在本发明的实施例中,采用WebKit浏览器引擎来解析运行攻击向量数据包进行跨站漏洞检测,以判断潜在跨站漏洞链接是否存在跨站漏洞。采用WebKit浏览器引擎进行解析,是由于网页代码(HTML、CSS、JS等)只能通过WebKit浏览器来解析运行,而跨站漏洞属于JS部分,所以只有加载WebKit浏览器,才能够将跨站漏洞运行起来。
[0123] 对跨站漏洞的检测过程采用模糊测试的方式来进行检测,通过获取不同网站的攻击向量,不断丰富该系统的规则库,然后利用该规则库中庞大的攻击向量,不断的伪造并发送网络请求,更加有效地判断目标页面是否存在跨站漏洞,提高了跨站漏洞检测的准确率。
[0124] 相比于现有的静态检测技术(例如抓取网页源码、字符串),采用WebKit浏览器引擎来模拟JavaScript脚本运行的真实环境,接管WebKit浏览器引擎的脚本处理函数onerror与alert,从浏览器底层层次来检测跨站漏洞,可以实现100%的判定跨站漏洞是否存在,准确率非常高。
[0125] 数据库5用于存储存在跨站漏洞的链接和对应加载的攻击向量。
[0126] 对每个潜在跨站漏洞链接,攻击向量测试模块3采用攻击向量从攻击向量规则库中选取对应的测试规则进行模糊测试,直至浏览器内核4判断潜在跨站漏洞链接存在跨站漏洞,将存在跨站漏洞的链接和对应加载的攻击向量保存至数据库5。
[0127] 其中,攻击向量测试模块3采用每条攻击向量对潜在跨站漏洞链接进行模糊测试,包括:伪造并向潜在跨站漏洞链接发送带有攻击向量请求,当浏览器内核4判断潜在跨站漏洞链接存在跨站漏洞时,则停止模糊测试,否则依次选择下一条测试规则对该潜在跨站漏洞链接进行模糊测试。
[0128] 如果潜在跨站漏洞链接在经过攻击向量规则库中的所有测试规则的模糊测试后,浏览器内核4仍判断潜在跨站漏洞链接不存在跨站漏洞,则攻击向量测试模块3结束对该潜在漏洞连接的模糊测试,将该不存在跨站漏洞的链接保存至数据库5。
[0129] 如图5所示,本发明实施例的跨站漏洞扫描系统,还包括:报告生成模块6,用于在攻击向量测试模块3模糊测试过程结束后,根据模糊测试结果生成检测报告。其中,检测报告包括:存在跨站漏洞的链接和对应加载的攻击向量,不存在跨站漏洞的链接。检测完后生成目标网站检测报告,能直观有效地看出检测效果,并且各个步骤都会生成日志信息,便于分析使用。
[0130] 根据本发明实施例的跨站漏洞扫描系统,可覆盖各类网站的业务,同爬取、链接过滤部分、攻击向量测试等相互融合,协调工作,以扫描目标网站环境,检测跨站漏洞,具有效率高、误报率低、扫描全面的特点,可以为企业与个人提供技术支持,保障网站安全。
[0131] 本发明的跨站漏洞扫描方法具有以下有益效果:
[0132] (1)误报率低,引入WebKit浏览器引擎,通过WebKit浏览器引擎模拟脚本代码执行,接管WebKit底层函数,可以非常准确地判定输入流是否存在跨站漏洞;
[0133] (2)漏报率低,根据开发者对Web安全和跨站漏洞的多年研发,总结出检测跨站的大量心得与测试用例,结合开源的测试用例,可以组建强大的攻击向量规则库;
[0134] (3)检测效率高在整站爬取中采用多线程技术,在跨站漏洞检测中采用了多进程+多线程的检测技术。在短时间内可以检测更多的跨站漏洞,节省时间,提高工作效率。在链接过滤中运用了URL相似度检测算法,去除重复或特征串类似的链接,可以节省漏洞检测的时间,提高工作效率;
[0135] (4)详尽的日志报表,在扫描结束后,给出整站或单一目标的所有跨站类型统计,跨站攻击测试用例,以及整改方案,方便企业与个人制定WEB加固措施。
[0136] 在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
[0137] 尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在不脱离本发明的原理和宗旨的情况下在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。本发明的范围由所附权利要求极其等同限定。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈