基于模糊测试的web漏洞自动挖掘方法

文档序号:9624112阅读:912来源:国知局
基于模糊测试的web漏洞自动挖掘方法
【技术领域】
[0001]本发明属于网络与信息安全技术领域,是针对web应用软件漏洞挖掘的一种新的方法。
【背景技术】
[0002]Web应用软件安全漏洞是一个web系统的各个组件(包括web应用、web服务、数据库等)在设计、实现以及安全策略上存在的安全缺陷。Owasp基金会将它称之为威胁,2013年统计的最新web十大威胁主要是:注入,有问题的鉴别和会话管理,跨站脚本攻击,不安全的直接对象的引用,安全配置错误,暴露敏感数据,函数级访问控制缺失,跨站请求伪造(CSRF),使用存在已知的漏洞的组件,未验证的重定向。
[0003]目前发现web漏洞的方法主要有:静态分析技术和动态分析技术。静态分析技术是在不运行目标系统的条件下,通过直接分析系统的源代码或编译后的二进制代码,挖掘系统脆弱性的分析测试技术。现有的静态分析方法主要有:词法分析、语法分析、语义分析以及数据流分析等。动态分析技术有别于静态分析技术,主要在目标系统运行过程中,通过测试向量,检测系统的特定信息,由此判定系统脆弱性问题的分析测试技术。由于动态分析技术在对目标系统进行测试过程中,没有近似估计和模型抽象处理。因此,其分析结果是绝对精准的。
[0004]web模糊测试可以分为人工模糊测试和自动化工具测试。在web应用方面的人工模糊测试是指安全人员通过经验修改http报文等进行的渗透测试,人工模糊测试因为人的参与,最为智能,但其缺点是不能彻底的发现漏洞,且需要有经验的web渗透测试工程师参与;自动化工具测试则是通过基于web模糊测试框架的工具测试,这种方法测试效率高,缺点是误报率相对较高,需要少量人工的参与。

【发明内容】

[0005]本发明的目的在于提供一种基于模糊测试的漏洞自动挖掘系统,用于解决上述现有技术的问题。
[0006]本发明一种基于模糊测试的漏洞自动挖掘系统,其中,包括:模糊测试向量生成模块、模糊测试模块、异常分析模块、服务器以及爬虫模块;模糊测试向量生成模块,用于生成能够与该服务器通信的报文或请求,作为模糊测试的输入的测试向量;爬虫模块,用于通过爬虫获取所有的该服务器上所有URL文件;模糊测试模块,包括:该执行主体,用于将获取的URL文件与测试向量合成,并进行测试;以及该异常监控,用于获取该执行主体测试过程中的异常信息;异常分析模块,用于根据该执行主体测试过程中的异常信息,对其中出现的漏洞所引起的异常进一步排查,确定发现的漏洞及漏洞类型。
[0007]根据本发明的基于模糊测试的web漏洞自动挖掘系统的一实施例,其中,该服务器具有服务器端监控模块,用于监控服务器端在测试过程中的异常。
[0008]根据本发明的基于模糊测试的web漏洞自动挖掘系统的一实施例,其中,该爬虫模块采用的对网站所有路径进行扫描的方法,从根目录开始,提取出网站所有页面的标签包含href和src的关键字,通过href和src关键字获取页面的相对路径,将获取页面的路径提取出来组合成URL,并将所有的URL进行过滤处理,去掉其中的死链接和重复的链接,供后续的执行模糊测试使用。
[0009]根据本发明的基于模糊测试的web漏洞自动挖掘系统的一实施例,其中,测试向量生成包括模糊测试向量生成和web模糊测试向量知识库两种方式,Web模糊测试向量知识库是预存的测试向量;该智能模糊测试向量在已有测试向量知识库的基础上,将其作为第一代个体,运用遗传算法帮助进行web模糊测试向量生成。
[0010]根据本发明的基于模糊测试的web漏洞自动挖掘系统的一实施例,其中,该模块测试模块采用HTTP通信的方式,执行主体自动提交http请求给服务端进行测试。
[0011]根据本发明的基于模糊测试的web漏洞自动挖掘系统的一实施例,其中,该异常分析模块用于分析http响应内容、http响应的状态码、web服务器的出错信息、断开连接、日志文件和事件日志。
[0012]综上,本发明基于模糊测试的web漏洞自动挖掘系统,解决了人工发现web应用的缺陷或漏洞过程中低效率且需要过多人工参与的问题。通过使用模糊测试向量对web应用服务进行模糊测试,从而发现web应用存在的漏洞。
【附图说明】
[0013]图1所示为针对web应用进行模糊测试的系统的示意图;
[0014]图2所示为模糊测试的执行过程示意图。
【具体实施方式】
[0015]为使本发明的目的、内容、和优点更加清楚,下面结合附图和实施例,对本发明的【具体实施方式】作进一步详细描述。
[0016]由于web应用一般都是通过远程进行访问,所以web应用的模糊测试目前来说为远程web模糊测试(当然在本地也能够测试)。web应用进行模糊测试的系统包括四个部分组成:Web模糊测试向量生成,web模糊测试,异常监控,日志分析。图1所示为针对web应用进行模糊测试的系统的示意图,如图1所示,web应用进行模糊测试的系统包括:模糊测试向量生成模块1、模糊测试模块3、异常分析模块5、服务器9以及爬虫模块7。
[0017]参考图1,web模糊测试向量生成模块1生成能够与web服务器9通信的报文或请求,作为模糊测试的输入。测试向量生成目前有两种方法:预生成测试向量,随机生成测试向量。预生成测试向量是采用预先定义好的,保存在一个文件中的模糊输入向量。随机生成测试向量是采用程序随机生成,或者使用一种智能的算法进行生成。模糊测试模块3是整个模糊的执行体,包括执行主体31和异常监控模块32。执行主体31采用发送http报文的方式将生成的测试向量输入到测试web应用程序,应用程序在处理模糊执行体发送的测试向量可能会引发安全问题(如跨站脚本执行、sql注入、文件包含等),或者服务器发生异常,在此我们将其统称为异常。异常监控负责整个模糊测试的异常收集和记录,并写入到日志文件。异常监控可以分为异常监控模块32和服务器端监控91。异常监控模块32是模糊测试模块3记录响应包实现的监控。服务器端监控91是在在服务器端安装监控软件,还可以通过直接分析服务器自己的日志实现的一种监控。异常分析模块5进行模糊测试日志分析,对监控日志的进一步处理和分析,对其中出现的漏洞所引起的异常进一步排查,确定发现的漏洞及漏洞类型。爬虫模块7是在web应用测试目标的获取方面可以采用爬虫,通过爬虫获取所有的服务器上所有URL等。另外,Web的模糊测试可以在以上结构的基础上增加其他组成部分,如测试向量预处理,筛选出最容易触发漏洞的测试向量。
[0018]进一步来看,参考图1,爬虫模块7可以采用的对网站所有路径进行扫描的方法,从根目录开始,提取出网站所有页面的标签包含href和src的关键字,通过href和src关键字获取页面的相对路径,然后将获取页面的路径提取出来组合成URL,并将所有的URL进行过滤处理,去掉其中的死链接和重复的链接,然后将其缓存至队列、存储到数据库中,或保存到一个url文本文件中,以此供后续的执行模糊测试使用。为了提高爬虫效率,将爬虫模块设置为多线程。
[0019]参考图1,模糊测试向量生成模块1用于测试向量(一句或一段脚本代码)生成,测试向量例如可以为:〈script>alert (1) </script>xss。测试向量生成可以包括模糊测试向量生成和web模糊测试向量知识库两种方式。Web模糊测试向量知识库是根据经验总结出来的一部分漏洞触发率比较高的测试向量,如用于测试跨站脚本漏洞的XSS Cheatsheat,用于测试sql注入漏洞的逻辑语句及sql拼接语句,用于测试命令执行的一些常用的命令,用于测试
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1