一种取证式网站漏洞扫描方法和系统的制作方法
【专利摘要】本发明涉及网络应用安全领域,旨在提供一种取证式网站漏洞扫描方法和系统。该方法包括步骤:页面抓取、漏洞扫描、自动取证、信息收集、手工取证;该系统包括页面抓取模块、漏洞扫描模块、自动取证模块、信息收集模块、手工取证模块、任务下发及管理模块、扫描结果显示及管理模块、报表模块、系统数据库模块、项目文件管理模块。本发明可以自动地对漏洞进行过滤,采用这种方法,用户可以在自动扫描结束时就拿到一份更加可信的报告,对于个别依然存在疑点的漏洞,可以采用本方法中所述的“手工取证”步骤,直接快速地对漏洞进行再次确认。
【专利说明】一种取证式网站漏洞扫描方法和系统
【技术领域】
[0001]本发明属于网络应用安全领域,尤其涉及一种取证式网站漏洞扫描方法和系统。【背景技术】
[0002]随着互联网的发展,各种网络应用层出不穷,极大程度地满足了用户的各种需求。但是,网络应用开发过程中往往更加注重功能上的实现,却遗留下各种各样的安全问题,这一般是由于进度压力、程序员水平限制、设计不完善或一时疏忽导致的。常见网站安全问题包括:代码对输入数据的过滤不足导致的漏洞、服务器配置方面造成的漏洞、敏感信息泄露等。在应用开发过程中一般很难完全杜绝这些漏洞。因此采用网站漏洞扫描工具对网站进行安全评估是一个很好的选择。
[0003]网站漏洞扫描系统一般抓取网站所有页面,然后对抓取到的页面进行逐个分析,发现尽可能多的安全问题。然而几个因素导致这样的扫描方式非常容易造成误报,报告一些实际上并不存在的漏洞,对网站开发和维护人员造成时间和精力上的浪费。这些因素包括:1)很多网页的动态性,造成网站漏洞扫描系统判断错误;2)网站漏洞扫描系统本身的判断逻辑不完善;3)目前的应用环境非常复杂,网站漏洞扫描系统的判断逻辑往往无法覆盖所有可能出现的情况。
[0004]在现有已知的技术中,与本方法较为接近的技术是一种名为“基于渗透技术的Web漏洞扫描方法”,其关键步骤是“包括扫描和分析两个阶段”。该技术主要实现了网站漏洞发现的方法。但如前面所述,这样的方法容易产生误报,但没有提供很好的过滤误报的方法。工作人员可以采用这种方法扫描到一些漏洞,但可能一部分是确实存在的,一部分是误报。他们只能选择容忍这些误报,或人工对漏洞再次逐个分析。
【发明内容】
[0005]本发明的目的是弥补现有网站漏洞扫描方法的不足,提供一种漏洞扫描方法和扫描系统,采用自动和手工取证方法,提高网站漏洞扫描系统扫描的准确率,提交更加准确可信的网站漏洞扫描结果。
[0006]提供一种取证式网站漏洞扫描方法,用于对被扫描网站进行漏洞检测,包括以下步骤:
[0007]a)页面抓取:从被扫描网站的初始页面开始解析,获取被扫描网站的页面链接,然后将页面链接存入系统数据库模块,并保证相同页面链接不重复存入,再从系统数据库模块中提取已保存的并且未经过页面抓取步骤处理的页面链接,进行页面访问,并提取新的页面链接存入到系统数据库模块,直至抓取完被扫描网站的所有页面;
[0008]b)漏洞扫描:在步骤a抓取到的页面中,判断是否还有尚未进行漏洞检测的页面,若已没有尚未进行漏洞检测的页面,则转步骤e,否则执行:选择一个尚未进行漏洞检测的页面进行漏洞检测,针对这个页面,根据不同漏洞各自所对应的检测逻辑进行漏洞分析(漏洞的种类非常多,每种漏洞都有不同的检测方法,部分相关技术已属于业界公知),如果发现漏洞转步骤C,否则重复执行步骤b ;
[0009]c)自动取证:对步骤b中发现的漏洞,根据不同漏洞的取证逻辑进行自动取证,并自动过滤掉误报,获得能够证明该漏洞存在的取证结果;
[0010]d)信息收集:根据步骤b发现的漏洞,针对不同漏洞能采取的手工取证方法,自动收集手工取证方法所需要的取证信息并进行保存,完成后转步骤b对其他页面进行漏洞检测;
[0011]e)手工取证:使用步骤d收集的取证信息,根据不同漏洞能采取的相应的手工取证方法进行手工取证,并获得用于确认漏洞的真实性的手工取证结果。
[0012]在本发明中,根据不同类型的网站漏洞,所述步骤c和步骤e中的取证结果包括以下数据:页面长度、HTTP响应码、页面请求响应时间、页面请求过程收发的报文、HTTP头、会话及Cookie、页面内容、多个页面请求之间的差异性(如页面响应码的差异、页面长度的差异、内容的差异等)、页面在浏览器中的实际显示效果及其截图(部分漏洞可以使用浏览器进行取证,不同的漏洞在浏览器中输入是不一样的,比如“跨站脚本”可以修改界面的标题或弹出一个对话框,“目录浏览”的显示效果则是在浏览器中显示一个目录下的所有子目录和子文件,不同的情况还有很多,不再一一列举)。
[0013]在本发明中,所述步骤d中的取证信息包括以下数据:自动构造的用于进一步取证的URL、HTTP头、会话及Cookie、表单提交数据、HTTP请求数据包、HTTP响应数据包。
[0014]在本发明中,所述步骤c中的自动取证包括以下方法:
[0015]I)直接将漏洞所在页面的响应内容长度、响应码、响应时间、报文、页面内容作为取证结果,并以此判断漏洞是否存在;
[0016]2)在原始页面请求的基础上进行修改,自动构造至少一个新的http请求,并对这些不同请求的数据(包括响应内容长度、响应码、响应时间、报文、页面内容)进行对比,把对比获得的差异性作为取证结果,并以此判断漏洞是否存在;
[0017]3)在漏洞所在页面的返回内容中匹配符合特征的文本,将匹配到的内容作为取证结果,并以此判断漏洞是否存在;
[0018]4)自动模拟表单提交并获取请求结果,并以此判断漏洞是否存在;
[0019]5)使用浏览器内核及浏览器对页面的内容进行解析和排版,执行页面内容中的脚本,将解析和排版的输出结果作为取证的结果,并以此判断漏洞是否存在。
[0020]在本发明中,所述步骤e的手工取证是可选的,能够根据需要选择性地执行步骤e (手工取证在人的参与下,能够比自动取证更准确);所述手工取证包括以下方法:
[0021]I)使用步骤d中获取的自动构造的用于进一步取证的URL,在浏览器中访问,查看实际的URL执行和显示结果,结合漏洞的特征,判断漏洞是否存在,且能将显示结果截图保存;
[0022]2)使用HTTP模拟发包器,将用于进一步取证的URL,以及步骤d中获取的HTTP头、会话及Cookie、表单提交数据信息,填入HTTP模拟发包器中,并发送HTTP请求,查看返回的页面内容,结合漏洞的特征,判断漏洞是否存在;
[0023]3)在浏览器中,将步骤d中获取的表单提交数据,填入漏洞所在页面的表单中,并提交表单,查看提交表单后的页面显示结果,结合漏洞的特征,判断漏洞是否存在;
[0024]4)利用专用工具,所述专用工具是指漏洞取证或渗透测试的工具,将进一步取证的URL、步骤d中获取的HTTP头、会话及Cookie、表单提交数据信息,填入专用工具中进一步取证或渗透,并查看结果,结合漏洞的特征,判断漏洞是否存在;
[0025]5)将步骤d中获取的HTTP请求数据包和HTTP响应数据包显示在用户界面上,并使用高亮、字体加粗方法将重要内容突出显示,结合漏洞的特征,人工判断漏洞是否存在。
[0026]在本发明中,能将网站漏洞和取证结果同时显示在程序或系统的用户界面中,或同时输出到报表中;用户根据这些信息判断漏洞是否存在,以及漏洞的性质和危害性。
[0027]在本发明中,所述一种取证式网站漏洞扫描方法具有学习功能:用户判断漏洞是否误报,系统对用户的判断结果进行记录,在后续的扫描中再次出现相同漏洞时,根据记录中的用户判断结果过滤掉误报的漏洞,即实现步骤c中的自动过滤掉误报。
[0028]提供基于所述扫描方法的取证式网站漏洞扫描系统,包括页面抓取模块、漏洞扫描模块、自动取证模块、信息收集模块、手工取证模块、任务下发及管理模块、扫描结果显示及管理模块、报表模块、系统数据库模块、项目文件管理模块;
[0029]所述页面抓取模块用于从被扫描网站的初始页面或者系统数据库模块保存的页面链接中,解析获取新的页面链接,然后将获取的页面链接存入系统数据库模块中,并保证相同页面链接不重复存入(页面抓取模块中的系统数据库模块也能用项目文件来代替);
[0030]所述漏洞扫描模块用于判断页面是否有经过漏洞检测,并对未经过漏洞检测的页面进行检测;
[0031]所述自动取证模块用于对漏洞扫描模块中发现的漏洞进行自动取证,并自动过滤掉误报,获得能够证明该漏洞存在的取证结果;
[0032]所述信息收集模块用于对漏洞扫描模块中发现的漏洞,自动收集并保存用于手工取证的取证信息;
[0033]所述手工取证模块用于利用信息收集模块收集的取证信息,进行手工取证,并获得用于确认漏洞的真实性的手工取证结果;
[0034]所述任务下发及管理模块用于提供给用户启动扫描网站过程的操作手段,达到漏洞发现和取证的最终目的,通过支持用户在用户操作界面上下发扫描任务,并对其进行管理,包括暂停、停止、删除、配置;
[0035]所述扫描结果显示及管理模块用于在扫描过程中以及扫描完成后,将扫描数据显示在界面上,并支持用户对扫描数据、手工取证结果和输出报告进行查看,扫描数据包括发现的漏洞、相应网站的页面链接、手工取证信息;
[0036]所述报表模块用于将漏洞检测的结果输出到独立文件中,独立文件作为工作人员之间的交流、存档或作为改进网站系统的依据,独立文件能被导入到第三方系统中作进一步的处理;
[0037]所述系统数据库模块用于存储系统的配置信息、网站的漏洞、页面链接,系统的配置信息包括账号和日志信息;
[0038]所述项目文件管理模块用于对项目文件进行管理,包括创建、删除、写入数据;项目文件是指能存储页面链接和漏洞数据的文件,每个任务下发及管理模块所下发的任务,都有一个对应的项目文件。
[0039]本发明的原理是:在扫描到漏洞后,利用漏洞本身的特征以及页面的返回数据,对该漏洞进行再次或多次的验证,排除误报的漏洞。[0040]与现有技术相比,本发明的有益效果是:
[0041]本发明提供了一种准确率更高的网站漏洞扫描方法,让工作人员可以轻松地产生一份更加可信的网站漏洞报告,无需再使用其他手段来判断漏洞的真实性,可以很大程度上提高工作效率。
[0042]取证式扫描方法可以自动地对漏洞进行过滤。采用这种方法,用户可以在自动扫描结束时就拿到一份更加可信的报告。对于个别依然存在疑点的漏洞,可以采用本方法中所述的“手工取证”步骤,直接快速地对漏洞进行再次确认。
【专利附图】
【附图说明】
[0043]图1是本发明中的取证式网站漏洞扫描系统的主要模块结构图。
[0044]图2是本发明中的取证式网站漏洞扫描方法的流程。
【具体实施方式】
[0045]首先需要说明的是,本发明涉及Web和数据库技术,是计算机技术在信息安全【技术领域】的一种应用。在本发明的实现过程中,会涉及到多个软件功能模块的应用。 申请人:认为,如在仔细阅读申请文件、准确理解本发明的实现原理和发明目的以后,在结合现有公知技术的情况下,本领域技术人员完全可以运用其掌握的软件编程技能实现本发明。前述软件功能模块包括但不限于:页面抓取模块、漏洞扫描模块、自动取证模块、信息收集模块、手工取证模块、任务下发及管理模块、扫描结果显示及管理模块、报表模块、系统数据库模块、项目文件管理模块等,凡本发明申请文件提及的均属此范畴, 申请人:不再一一列举。
[0046]本发明的目的是提供一种准确率更高的网站漏洞扫描方法。通过取证的方法,过滤误报的漏洞。取证主要包含自动取证和手工取证两个步骤,其中自动取证是在扫描过程中自动完成的。
[0047]取证式网站漏洞扫描方法具体包括以下步骤:
[0048]a)页面抓取:从被扫描网站的初始页面开始解析,获取被扫描网站的页面链接,然后将页面链接存入系统数据库模块,并保证相同页面链接不重复存入,再从系统数据库模块中提取已保存的并且未经过页面抓取步骤处理的页面链接,进行页面访问,并提取新的页面链接存入到系统数据库模块,直至抓取完被扫描网站的所有页面。可以采用网络爬虫、正则表达式、模拟解析等多种方式,或多种方式相结合来进行,也可以采用目前现有开源的网络爬虫,如LabiruNurch等都是知名度较高的开源网络爬虫项目。
[0049]b)漏洞扫描:在步骤a抓取到的页面中,判断是否还有尚未进行漏洞检测的页面,若已没有尚未进行漏洞检测的页面,则转步骤e,否则执行:选择一个尚未进行漏洞检测的页面进行漏洞检测,针对这个页面,根据不同漏洞各自所对应的检测逻辑进行漏洞分析(漏洞的种类非常多,每种漏洞都有不同的检测方法,部分相关技术已属于业界公知),如果发现漏洞转步骤C,否则重复执行步骤b。由于漏洞的多样性,本发明采用策略库实现漏洞检测逻辑的编写,策略库提供统一的漏洞检测框架,将每条漏洞分别编写成策略库中的一条策略。用户下发任务时,可以选择要执行策略库中的哪些策略。扫描过程中,对于每个页面,都会执行一遍用户所选择的所有策略。在本发明中,当前步骤应该尽可能多地发现漏洞,减少漏报。网站漏洞方法中误报和漏报往往是一对矛盾,需要在扫描策略中做出平衡。但在这一步骤中,需要优先考虑的是减少漏报率。
[0050]c)自动取证:对步骤b中发现的漏洞,根据不同漏洞的取证逻辑进行自动取证,并自动过滤掉误报,获得能够证明该漏洞存在的取证结果。自动取证是在扫描过程中自动完成的,在所述的策略库中的每条策略执行完成后,如果发现可能存在的漏洞,就开始自动过滤和取证的过程,如果判断为误报,该结果自动被丢弃,否则存入数据库中。自动取证的依据和结果可能包括但不限于以下信息:页面长度、HTTP响应码、页面请求响应时间、页面请求过程收发的报文、HTTP头、会话及Cookie、页面内容等,另外还可以包括多个页面请求之间的差异性,如页面响应码的差异、页面长度的差异和内容的差异等。除了数据化的内容夕卜,取证结果还可以包括页面在浏览器中的实际显示效果及其截图,部分漏洞可以使用浏览器进行取证,不同的漏洞在浏览器中输入是不一样的,比如“跨站脚本”可以修改界面的标题或弹出一个对话框,“目录浏览”的显示效果则是在浏览器中显示一个目录下的所有子目录和子文件,不同的情况还有很多,不再一一列举。自动取证包括但不限于以下方法:1)直接将漏洞所在页面的响应内容长度、响应码、响应时间、报文、页面内容作为取证结果,并以此判断漏洞是否存在;2)在原始页面请求的基础上进行修改,自动构造一个或多个新的http请求,并对这些不同请求的响应内容长度、响应码、响应时间、报文、页面内容等数据进行对比,把对比获得的差异性作为取证结果,并以此判断漏洞是否存在;3)在漏洞所在页面的返回内容中匹配符合特征的文本,将匹配到的内容作为取证结果,并以此判断漏洞是否存在;4)自动模拟表单提交并获取请求结果,并以此判断漏洞是否存在。5)使用浏览器内核及浏览器对页面的内容进行解析和排版,执行页面内容中的脚本。将解析和排版的输出结果作为取证的结果,并以此判断漏洞是否存在。
[0051]d)信息收集:根据步骤b发现的漏洞,针对该漏洞可以采取的相应的手工取证方法,将所需要的取证信息收集并保存,完成后转步骤b对其他页面进行漏洞检测。相关的数据来源可以来自于页面本身,收发的HTTP数据包以及程序自动分析的结果。对于已经发现的可能存在的漏洞,经过自动过滤后,由于检测技术的复杂性,依然不能完全保证准确率,因此可能存在需要人工辅助来判断。所述的漏洞检测策略完成后,相关的信息被自动收集,这些信息将会被作为手工取证的来源和依据。用户在需要的时候,可以依据这些信息来判断漏洞的真实性,并将判断结果存储或输出。可能被收集的信息包括但不限于:自动构造的用于进一步取证的URL、HTTP头、会话及Cookie、表单提交数据、HTTP请求数据包、HTTP响应数据包等。
[0052]e)手工取证:使用步骤d收集的取证信息,根据该漏洞可以采取的相应的手工取证方法进行手工取证,并获得用于确认漏洞的真实性的手工取证结果。手工取证主要是用于手工操作,肉眼观察为主,因此除了所述的步骤d中获取的信息,本发明的系统中还应该包含一些工具,方便用户人工操作,如:浏览器、基于HTTP协议的模拟发包器、漏洞验证工具、Web应用渗透测试工具、网络数据包抓取和解析工具等。还应该将相关信息显示在用户界面上,便于用户查看。根据不同类型的漏洞,手工取证也应当使用不同的方法。可以使用的方法包括但不限于:1)使用步骤d中获取的自动构造的用于进一步取证的URL,在浏览器中访问,查看实际的URL执行和显示结果,结合漏洞的特征,判断漏洞是否存在。同时可以将显示结果截图保存;2)使用HTTP模拟发包器,将用于进一步取证的URL,以及步骤d中获取的HTTP头、会话及Cookie、表单提交数据等信息,填入HTTP模拟发包器中,并发送HTTP请求,查看返回的页面内容,结合漏洞的特征,判断漏洞是否存在;3)在浏览器中,将步骤d中获取的表单提交数据,填入漏洞所在页面的表单中,并提交表单,查看提交表单后的页面显示结果,结合漏洞的特征,判断漏洞是否存在;4)利用其他专用的漏洞取证或渗透测试工具,用于进一步取证的URL,以及步骤d中获取的HTTP头、会话及Cookie、表单提交数据等信息,填入专用工具中进一步取证或渗透,并查看结果,结合漏洞的特征,判断漏洞是否存在;5)将步骤d中获取的HTTP请求数据包和HTTP响应数据包显示在用户界面上,并使用高亮、字体加粗等方法将重要内容突出显示,结合漏洞的特征,人工判断漏洞是否存在。
[0053]步骤e的手工取证是可选的,如果用户依然对报表中所报告的漏洞信心不足,可以根据需要选择执行步骤e。
[0054]取证式网站漏洞扫描方法,可以将网站漏洞和取证结果同时显示在程序或系统的用户界面中,或同时输出到报表中;用户根据这些信息判断漏洞是否存在,以及判断漏洞的性质和危害性。取证式网站漏洞扫描方法,还具有学习功能:用户判断漏洞是否误报,系统对用户的判断结果进行记录,在后续的扫描中再次出现相同漏洞时,根据记录中的用户判断结果过滤掉误报的漏洞。
[0055]基于所述扫描方法的取证式网站漏洞扫描系统,可以包括但不限于以下模块:页面抓取模块、漏洞扫描模块、自动取证模块、信息收集模块、手工取证模块、任务下发及管理模块、扫描结果显示及管理模块、报表模块、系统数据库模块、项目文件管理模块等。
[0056]以下对各模块进一步说明:
[0057]I)页面抓取模块用于从被扫描网站的初始页面或者系统数据库模块保存的页面链接中,解析获取新的页面链接,然后将获取的页面链接存入系统数据库模块中,并保证相同页面链接不重复存入,这里所述的数据库也可以用项目文件来代替。
[0058]2)漏洞扫描模块用于判断页面是否有经过漏洞检测,并对未经过漏洞检测的页面进行检测,不同的漏洞有不同的检测方法。
[0059]3)自动取证模块用于对漏洞扫描模块中发现的漏洞进行自动取证,并自动过滤掉误报,获得能够证明该漏洞存在的取证结果。
[0060]4)信息收集模块用于对漏洞扫描模块中发现的漏洞,自动收集并保存用于手工取证的取证信息。
[0061]5)手工取证模块用于利用信息收集模块收集的取证信息,进行手工取证,并获得用于确认漏洞的真实性的手工取证结果。关于这个模块的操作,用户是可选的,可以根据需要进行。
[0062]6)任务下发及管理模块是指用户在用户操作界面上下发扫描任务,并对其进行管理,如暂停、停止、删除、配置等。其目的是提供给用户启动扫描网站过程的操作手段,达到漏洞发现和取证的最终目的。
[0063]7)扫描结果显示及管理模块是指在扫描过程中以及扫描完成后,将发现的漏洞、相应网站的页面链接、手工取证信息等内容,显示在界面上。用户可以查看相关数据,手工取证以及输出报告。
[0064]8)报表模块是指将漏洞检测的结果输出到独立的文件中,用于工作人员之间的交流、存档或作为改进网站系统的依据,输出的文件也可以被导入到第三方系统中用于进一步的处理。[0065]9)系统数据库模块用于存储系统的配置信息,账号和日志信息等,也可以存储网站的漏洞和页面链接等信息。
[0066]10)项目文件管理模块,其中项目文件是指可以存储页面链接和漏洞等数据的文件,每个任务下发及管理模块所下发的任务,都可以有一个对应的项目文件。所述的项目文件管理模块是指对项目文件进行管理的模块,如创建、删除、写入数据等。
[0067]在系统中,用户的扫描过程如下:用户首先下发任务并等待扫描完成。扫描过程中或扫描结束后,用户可以查看扫描结果,进行手工取证。最后根据需要将扫描结果和取证结果输出到报表。
[0068]通过取证式网站漏洞扫描方法在取证式网站漏洞扫描系统中加以实现,便可以完成取证式网站漏洞扫描的功能。
[0069]最后,需要注意的是,以上列举的仅是本发明的具体实施例。显然,本发明不限于以上实施例,还可以有很多变形。本领域的普通技术人员能从本发明公开的内容中直接导出或联想到的所有变形,均应认为是本发明的保护范围。
【权利要求】
1.一种取证式网站漏洞扫描方法,用于对被扫描网站进行漏洞检测,其特征在于,包括以下步骤: a)页面抓取:从被扫描网站的初始页面开始解析,获取被扫描网站的页面链接,然后将页面链接存入系统数据库模块,并保证相同页面链接不重复存入,再从系统数据库模块中提取已保存的并且未经过页面抓取步骤处理的页面链接,进行页面访问,并提取新的页面链接存入到系统数据库模块,直至抓取完被扫描网站的所有页面; b)漏洞扫描:在步骤a抓取到的页面中,判断是否还有尚未进行漏洞检测的页面,若已没有尚未进行漏洞检测的页面,则转步骤e,否则执行:选择一个尚未进行漏洞检测的页面进行漏洞检测,针对这个页面,根据不同漏洞各自所对应的检测逻辑进行漏洞分析,如果发现漏洞转步骤C,否则重复执行步骤b ; c)自动取证:对步骤b中发现的漏洞,根据不同漏洞的取证逻辑进行自动取证,并自动过滤掉误报,获得能够证明该漏洞存在的取证结果; d)信息收集:根据步骤b发现的漏洞,针对不同漏洞能采取的手工取证方法,自动收集手工取证方法所需要的取证信息并进行保存,完成后转步骤b对其他页面进行漏洞检测; e)手工取证:使用步骤d收集的取证信息,根据不同漏洞能采取的相应的手工取证方法进行手工取证,并获得用于确认漏洞的真实性的手工取证结果。
2.根据权利要求1所述的一种取证式网站漏洞扫描方法,其特征在于,根据不同类型的网站漏洞,所述步骤c和步骤e中的取证结果包括以下数据:页面长度、HTTP响应码、页面请求响应时间、页面请求过程收发的报文、HTTP头、会话及Cookie、页面内容、多个页面请求之间的差异性(如页面响应码的差异、页面长度的差异、内容的差异等)、页面在浏览器中的实际显示效果及其截图(部分漏洞可以使用浏览器进行取证,不同的漏洞在浏览器中输入是不一样的,比如“跨站脚本”可以修改界面的标题或弹出一个对话框,“目录浏览”的显示效果则是在浏览器中显示一个目录下的所有子目录和子文件,不同的情况还有很多,不再列举)。
3.根据权利要求1所述的一种取证式网站漏洞扫描方法,其特征在于,所述步骤d中的取证信息包括以下数据:自动构造的用于进一步取证的URL、HTTP头、会话及Cookie、表单提交数据、HTTP请求数据包、HTTP响应数据包。
4.根据权利要求1所述的一种取证式网站漏洞扫描方法,其特征在于,所述步骤c中的自动取证包括以下方法: 1)直接将漏洞所在页面的响应内容长度、响应码、响应时间、报文、页面内容作为取证结果,并以此判断漏洞是否存在; 2)在原始页面请求的基础上进行修改,自动构造至少一个新的http请求,并对这些不同请求的数据(包括响应内容长度、响应码、响应时间、报文、页面内容)进行对比,把对比获得的差异性作为取证结果,并以此判断漏洞是否存在; 3)在漏洞所在页面的返回内容中匹配符合特征的文本,将匹配到的内容作为取证结果,并以此判断漏洞是否存在; 4)自动模拟表单提交并获取请求结果,并以此判断漏洞是否存在; 5)使用浏览器内核及浏览器对页面的内容进行解析和排版,执行页面内容中的脚本,将解析和排版的输 出结果作为取证的结果,并以此判断漏洞是否存在。
5.根据权利要求3所述的一种取证式网站漏洞扫描方法,其特征在于,所述步骤e的手工取证是可选的,能够根据需要选择性地执行步骤e ;所述手工取证包括以下方法: 1)使用步骤d中获取的自动构造的用于进一步取证的URL,在浏览器中访问,查看实际的URL执行和显示结果,结合漏洞的特征,判断漏洞是否存在,且能将显示结果截图保存; 2)使用HTTP模拟发包器,将用于进一步取证的URL,以及步骤d中获取的HTTP头、会话及Cookie、表单提交数据信息,填入HTTP模拟发包器中,并发送HTTP请求,查看返回的页面内容,结合漏洞的特征,判断漏洞是否存在; 3)在浏览器中,将步骤d中获取的表单提交数据,填入漏洞所在页面的表单中,并提交表单,查看提交表单后的页面显示结果,结合漏洞的特征,判断漏洞是否存在; 4)利用专用工具,所述专用工具是指漏洞取证或渗透测试的工具,将进一步取证的URL、步骤d中获取的HTTP头、会话及Cookie、表单提交数据信息,填入专用工具中进一步取证或渗透,并查看结果, 结合漏洞的特征,判断漏洞是否存在; 5)将步骤d中获取的HTTP请求数据包和HTTP响应数据包显示在用户界面上,并使用高亮、字体加粗方法将重要内容突出显示,结合漏洞的特征,人工判断漏洞是否存在。
6.根据权利要求1所述的一种取证式网站漏洞扫描方法,其特征在于,能将网站漏洞和取证结果同时显示在程序或系统的用户界面中,或同时输出到报表中;用户根据这些信息判断漏洞是否存在,以及漏洞的性质和危害性。
7.根据权利要求1所述的一种取证式网站漏洞扫描方法,其特征在于,所述一种取证式网站漏洞扫描方法具有学习功能:用户判断漏洞是否误报,系统对用户的判断结果进行记录,在后续的扫描中再次出现相同漏洞时,根据记录中的用户判断结果过滤掉误报的漏洞,即实现步骤c中的自动过滤掉误报。
8.基于权利要求1所述扫描方法的取证式网站漏洞扫描系统,其特征在于,包括页面抓取模块、漏洞扫描模块、自动取证模块、信息收集模块、手工取证模块、任务下发及管理模块、扫描结果显示及管理模块、报表模块、系统数据库模块、项目文件管理模块; 所述页面抓取模块用于从被扫描网站的初始页面或者系统数据库模块保存的页面链接中,解析获取新的页面链接,然后将获取的页面链接存入系统数据库模块中,并保证相同页面链接不重复存入(页面抓取模块中的系统数据库模块也能用项目文件来代替); 所述漏洞扫描模块用于判断页面是否有经过漏洞检测,并对未经过漏洞检测的页面进行检测; 所述自动取证模块用于对漏洞扫描模块中发现的漏洞进行自动取证,并自动过滤掉误报,获得能够证明该漏洞存在的取证结果; 所述信息收集模块用于对漏洞扫描模块中发现的漏洞,自动收集并保存用于手工取证的取证信息; 所述手工取证模块用于利用信息收集模块收集的取证信息,进行手工取证,并获得用于确认漏洞的真实性的手工取证结果; 所述任务下发及管理模块用于提供给用户启动扫描网站过程的操作手段,达到漏洞发现和取证的最终目的,通过支持用户在用户操作界面上下发扫描任务,并对其进行管理,包括暂停、停止、删除、配置; 所述扫描结果显示及管理模块用于在扫描过程中以及扫描完成后,将扫描数据显示在界面上,并支持用户对扫描数据、手工取证结果和输出报告进行查看,扫描数据包括发现的漏洞、相应网站的页面链接、手工取证信息; 所述报表模块用于将漏洞检测的结果输出到独立文件中,独立文件作为工作人员之间的交流、存档或作为改进网站系统的依据,独立文件能被导入到第三方系统中作进一步的处理; 所述系统数据库模块用于存储系统的配置信息、网站的漏洞、页面链接,系统的配置信息包括账号和日志信息; 所述项目文件管理模块用于对项目文件进行管理,包括创建、删除、写入数据;项目文件是指能存储页面链接和漏洞数据的文件,每个任务下发及管理模块所下发的任务,都有一个对应的项 目文件。
【文档编号】G06F21/57GK103942497SQ201410185544
【公开日】2014年7月23日 申请日期:2014年4月30日 优先权日:2013年9月11日
【发明者】林章峰, 范渊, 杨永清 申请人:杭州安恒信息技术有限公司