一种网页检测方法与扫描引擎置与流程

文档序号:19010374发布日期:2019-10-30 00:18阅读:145来源:国知局
一种网页检测方法与扫描引擎置与流程

本发明涉及网页游览应用领域,尤其涉及的是一种网页检测方法与扫描引擎置。



背景技术:

随着互联网的发展,各种网络应用层出不穷,在实现了各种功能的同时,也引入了各种安全漏洞,给攻击者提供了方便。针对网站安全需求的不断增长,出现了许多网站漏洞扫描器,扫描器通常会根据用户提供的url“爬行”整个网站,将网页下载下来,再将网页的内容进行检测、分析以检查网页中是否有漏洞存在。

但是几乎所有扫描器都面临这样的问题:(1)漏洞多种多样,针对不同漏洞的检测方法又各不相同,如何能够合理设计扫描器,能最大限度的支持各种漏洞?(2)互联网是一个高速发展的产业,随时都可能会有新的网站安全漏洞产生出来,如何能够快速的扩展扫描器以支持新的漏洞检测方案?

现有扫描器大多使用静态的配置文件用于描述各个漏洞的检测策略。但是通常的配置文件往往缺乏灵活性,无法快速的扩展,也不便于安全研究人员使用。



技术实现要素:

本发明的目的在于提供一种用脚本语言来实现漏洞检测策略并能检测是否为恶意网站的一种网页检测方法与扫描引擎置。

为实现上述目的,本发明提供如下技术方案:一种网页检测方法,具体包括下述步骤:

步骤a:确定网页可接收的参数-值对集合;以及为所述参数-值对集合中的每个参数-值对:构造在值中插入了特定脚本的参数-值对;

步骤b设置要扫描的网站url,选择网站要检测的安全漏洞类型;

步骤c:启动扫描引擎模块,向需要检测的url构造并发送http请求,并接收http响应;

步骤d:将步骤c中的http请求和响应的所有数据,保存在扫描引擎模块;

步骤e:根据用户选择的安全漏洞类型,分别执行对应的漏洞检测脚本模块;漏洞检测脚本模块通过api从扫描引擎模块,获取步骤c中保存的http请求和响应的数据,漏洞检测脚本模块能根据获取的数据判断所需检测的网站是否存在漏洞。

步骤f:分析步骤c中保存的http请求和响应的数据的源码,解析出所述网页的标签;

步骤g:将解析出的各个标签按照不同类型输入到对应的不同扫描引擎中进行扫描,查看是否存在恶意行为;

步骤h:根据各扫描引擎的扫描结果判断所述网页是否为恶意网页。

进一步,步骤e中,漏洞检测脚本模块还能通过api来构造、发送新的http请求,并根据得到的响应进行进一步的漏洞检测。

进一步,所述基于脚本的网站漏洞扫描方法能配置每次扫描任务启用哪些漏洞检测脚本,用户在任何时候,可以选择检测所有的漏洞,也可以只选择一部分的漏洞,只有用户选择的漏洞,对应的脚本才会被执行。

一种网页检测方法的扫描引擎置,包括扫描引擎模块和漏洞检测脚本模块,所述扫描引擎模块能实现下述功能:

(1)构造和发送http请求,接受http响应;

(2)提供脚本语言的运行时环境;

(3)向脚本程序提供调用接口,允许脚本语言使用引擎提供的功能;

所述功能(1)通过扫描引擎模块内部的http收发包模块实现;扫描引擎模块内部设有http收发包模块,用于模拟浏览器发送、接收http请求;

所述功能(2)通过运行时环境模块实现;扫描引擎模块内部设有运行时环境模块,是脚本程序运行所依赖的模块;

所述功能(3)中,扫描引擎模块向漏洞检测脚本提供接口,具体接口包括:

接口a:获取需要扫描的目标网页url,获取目标网页url的方式包括手工输入、从已有的url列表或任何存放着url的数据库导入、通过网络抓包获取、从网站爬虫导入;

接口b:获取页面内容对应的htmldom信息,htmldom信息包括链接、按钮、表单、表单元素、文本、脚本;

接口c:获取扫描引擎模块的http请求的相关数据,包括cookie、会话、http头、一次请求所用的时间;

接口d:构造、发送http的请求到被扫描的网站,并接收相应的http响应,能设置http请求的每一部分内容,包括cookie,http头;

接口e:将发现的漏洞信息上报给扫描引擎模块,并反馈显示;所述漏洞检测脚本模块通过扫描引擎模块中的接口实现与扫描引擎模块交互,每个漏洞检测脚本模块用于检测一个类别的漏洞,且不同的漏洞检测脚本模块之间独立执行,检测结果不产生相互影响;漏洞检测脚本模块分别对所需检测的网站的页面进行漏洞检测,如果检测出漏洞,漏洞检测脚本模块将获得的漏洞信息返回给扫描引擎模块;漏洞信息包括:出现漏洞的url、漏洞的名称、漏洞的详细描述、漏洞的修复建议;漏洞检测脚本模块进行漏洞检测时,通过将至少一种漏洞检测方法以任意顺序组合来进行页面漏洞检测,具体漏洞检测方法包括:

方法a:依据被检测url的请求响应码、http头、会话和cookie、响应内容的文本长度、响应时间长短,判断是否符合漏洞的特征;

方法b:在被检测url的页面响应内容中,根据漏洞检测逻辑的需要,进行文本查找、通配符或正则表达式匹配的方式,并依据匹配结果判断是否符合漏洞的特征;

方法c:在被检测url的页面响应内容中,根据漏洞检测逻辑的需要,提取特定的内容,判断是否符合漏洞的特征;特定的内容包括链接、表单、表单元素、按钮、注释、文本、标签、标签属性、脚本、css定义;

方法d:提供自定义的字典文件,依次提取字典文件中的内容,用于漏洞检测,内容包括每个字、词、文本行;

方法e:在漏洞检测脚本模块进行漏洞检测过程中,构造至少一个新的http请求包,根据漏洞检测逻辑的需要,将新的http请求包和原始页面的请求包一起,用于响应码、页面长度、http头、页面内容等方面的差异性比对和用于内容的提取和匹配;漏洞检测脚本根据差异性比对或内容匹配的结果,判断是否存在漏洞。

进一步,所述漏洞检测脚本模块允许用户根据所需检测的网站,自定义编写的漏洞检测脚本,用于检测用户特定的安全问题。

进一步,所述漏洞检测脚本能采用各种脚本语言实现,并运行在所述扫描引擎提供的漏洞检测脚本运行时环境模块中。

进一步,所述漏洞检测脚本模块将获得的漏洞信息,通过扫描引擎模块进行存储和输出。

与现有技术相比,本发明的有益效果是:

1.本发明所提供的一种网页检测方法与扫描引擎置,使漏洞的检测逻辑与扫描引擎分离、降低二者的耦合度,漏洞检测的逻辑由漏洞检测脚本实现,扫描引擎实现通用的、不特别针对某一类漏洞的基本功能。这样的优势在于让整个网站漏洞扫描系统易于扩展,可以非常方便的针对新发现的漏洞编写策略检测脚本。

2.分析网页的源码,解析出所述网页的标签,将解析出的各个标签按照不同类型输入到对应的不同扫描引擎中进行扫描,查看是否存在恶意行为,根据各扫描引擎的扫描结果判断所述网页是否为恶意网页的技术方案,由于解析出网页的标签,将不同类型的标签输入的各自对应的不同扫描引擎中分别进行扫描,提高了网页检测的效率,并且由于不同的扫描引擎都有针对性地对相应的标签进行扫描,提高了判断的准确性。

附图说明

图1为本发明所述一种网页检测方法与扫描引擎置的整体框架流程结构示意图。

图2为本发明所述一种网页检测方法与扫描引擎置的结构示意图。

具体实施方式

下面结合附图和实施例对本发明进一步说明。

实施例:

如图1所示,本发明实施例所述的为实现上述目的,本发明提供如下技术方案:一种网页检测方法,具体包括下述步骤:

步骤a:确定网页可接收的参数-值对集合;以及为所述参数-值对集合中的每个参数-值对:构造在值中插入了特定脚本的参数-值对;

步骤b设置要扫描的网站url,选择网站要检测的安全漏洞类型;

步骤c:启动扫描引擎模块,向需要检测的url构造并发送http请求,并接收http响应;

步骤d:将步骤c中的http请求和响应的所有数据,保存在扫描引擎模块;

步骤e:根据用户选择的安全漏洞类型,分别执行对应的漏洞检测脚本模块;漏洞检测脚本模块通过api从扫描引擎模块,获取步骤c中保存的http请求和响应的数据,漏洞检测脚本模块能根据获取的数据判断所需检测的网站是否存在漏洞。

步骤f:分析步骤c中保存的http请求和响应的数据的源码,解析出所述网页的标签;

步骤g:将解析出的各个标签按照不同类型输入到对应的不同扫描引擎中进行扫描,查看是否存在恶意行为;

步骤h:根据各扫描引擎的扫描结果判断所述网页是否为恶意网页。

进一步,步骤e中,漏洞检测脚本模块还能通过api来构造、发送新的http请求,并根据得到的响应进行进一步的漏洞检测。

进一步,所述基于脚本的网站漏洞扫描方法能配置每次扫描任务启用哪些漏洞检测脚本,用户在任何时候,可以选择检测所有的漏洞,也可以只选择一部分的漏洞,只有用户选择的漏洞,对应的脚本才会被执行。

如图2所示,一种网页检测方法的扫描引擎置,包括扫描引擎模块和漏洞检测脚本模块,所述扫描引擎模块能实现下述功能:

(1)构造和发送http请求,接受http响应;

(2)提供脚本语言的运行时环境;

(3)向脚本程序提供调用接口,允许脚本语言使用引擎提供的功能;

所述功能(1)通过扫描引擎模块内部的http收发包模块实现;扫描引擎模块内部设有http收发包模块,用于模拟浏览器发送、接收http请求;

所述功能(2)通过运行时环境模块实现;扫描引擎模块内部设有运行时环境模块,是脚本程序运行所依赖的模块;

所述功能(3)中,扫描引擎模块向漏洞检测脚本提供接口,具体接口包括:

接口a:获取需要扫描的目标网页url,获取目标网页url的方式包括手工输入、从已有的url列表或任何存放着url的数据库导入、通过网络抓包获取、从网站爬虫导入;

接口b:获取页面内容对应的htmldom信息,htmldom信息包括链接、按钮、表单、表单元素、文本、脚本;

接口c:获取扫描引擎模块的http请求的相关数据,包括cookie、会话、http头、一次请求所用的时间;

接口d:构造、发送http的请求到被扫描的网站,并接收相应的http响应,能设置http请求的每一部分内容,包括cookie,http头;

接口e:将发现的漏洞信息上报给扫描引擎模块,并反馈显示;所述漏洞检测脚本模块通过扫描引擎模块中的接口实现与扫描引擎模块交互,每个漏洞检测脚本模块用于检测一个类别的漏洞,且不同的漏洞检测脚本模块之间独立执行,检测结果不产生相互影响;漏洞检测脚本模块分别对所需检测的网站的页面进行漏洞检测,如果检测出漏洞,漏洞检测脚本模块将获得的漏洞信息返回给扫描引擎模块;漏洞信息包括:出现漏洞的url、漏洞的名称、漏洞的详细描述、漏洞的修复建议;漏洞检测脚本模块进行漏洞检测时,通过将至少一种漏洞检测方法以任意顺序组合来进行页面漏洞检测,具体漏洞检测方法包括:

方法a:依据被检测url的请求响应码、http头、会话和cookie、响应内容的文本长度、响应时间长短,判断是否符合漏洞的特征;

方法b:在被检测url的页面响应内容中,根据漏洞检测逻辑的需要,进行文本查找、通配符或正则表达式匹配的方式,并依据匹配结果判断是否符合漏洞的特征;

方法c:在被检测url的页面响应内容中,根据漏洞检测逻辑的需要,提取特定的内容,判断是否符合漏洞的特征;特定的内容包括链接、表单、表单元素、按钮、注释、文本、标签、标签属性、脚本、css定义;

方法d:提供自定义的字典文件,依次提取字典文件中的内容,用于漏洞检测,内容包括每个字、词、文本行;

方法e:在漏洞检测脚本模块进行漏洞检测过程中,构造至少一个新的http请求包,根据漏洞检测逻辑的需要,将新的http请求包和原始页面的请求包一起,用于响应码、页面长度、http头、页面内容等方面的差异性比对和用于内容的提取和匹配;漏洞检测脚本根据差异性比对或内容匹配的结果,判断是否存在漏洞。

所述漏洞检测脚本模块允许用户根据所需检测的网站,自定义编写的漏洞检测脚本,用于检测用户特定的安全问题,所述漏洞检测脚本能采用各种脚本语言实现,并运行在所述扫描引擎提供的漏洞检测脚本运行时环境模块中,所述漏洞检测脚本模块将获得的漏洞信息,通过扫描引擎模块进行存储和输出。

本实施例所提供的一种网页检测方法与扫描引擎置,使漏洞的检测逻辑与扫描引擎分离、降低二者的耦合度,漏洞检测的逻辑由漏洞检测脚本实现,扫描引擎实现通用的、不特别针对某一类漏洞的基本功能。这样的优势在于让整个网站漏洞扫描系统易于扩展,可以非常方便的针对新发现的漏洞编写策略检测脚本,分析网页的源码,解析出所述网页的标签,将解析出的各个标签按照不同类型输入到对应的不同扫描引擎中进行扫描,查看是否存在恶意行为,根据各扫描引擎的扫描结果判断所述网页是否为恶意网页的技术方案,由于解析出网页的标签,将不同类型的标签输入的各自对应的不同扫描引擎中分别进行扫描,提高了网页检测的效率,并且由于不同的扫描引擎都有针对性地对相应的标签进行扫描,提高了判断的准确性。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1