发明内容
本发明实施例提供了一种网页检测方法与扫描引擎,以解决现有技术无法准确判断一个漏洞是真实存在的,还是一个错误页面或404页面,导致漏洞误识误报,降低用户使用体验的问题。
为了解决上述问题,本发明实施例公开了一种网页检测方法,包括:抓取目标网站的URL或内容,通过返回的结果确定是网页,访问所述网页;判断访问的网页是否符合以下规则至少之一:通用异常页面规则、自定义异常页面规则、自定义异常页面行为规则;若符合,则确定所述访问的网页为异常页面;其中,所述通用异常页面规则用于根据网页的状态代码或网页内容确定网页是否为异常页面,所述自定义异常页面规则用于根据从网页中提取的异常页面关键字确定网页是否为异常页面,所述自定义异常页面行为规则用于根据设定的访问异常页面的行为确定网页是否为异常页面。
优选地,所述异常页面包括404页面和除404页面之外的其它错误页面;所述通用异常页面规则包括通用404页面规则,所述自定义异常页面规则包括自定义404页面规则,所述自定义异常页面行为规则包括自定义404页面行为规则;其中,所述通用404页面规则用于根据网页的状态代码或网页内容确定网页是否为404页面,所述自定义404页面规则用于根据从网页中提取的404关键字确定网页是否为404页面,所述自定义404页面行为规则用于根据设定的访问404页面的行为确定网页是否为404页面。
优选地,所述自定义异常页面规则还包括自定义错误页面规则,所述自定义错误页面规则用于根据从网页中提取的错误网页关键字确定网页是否为除404页面之外的其它错误页面。
优选地,在所述判断访问的网页是否符合以下规则至少之一:通用异常页面规则、自定义异常页面规则、自定义异常页面行为规则的步骤之前,还包括:收集所述通用404页面规则、所述自定义404页面规则、所述自定义404页面行为规则、所述自定义错误页面规则中的至少一种。
优选地,收集所述通用404页面规则包括:将网页状态代码为404和/或网页内容包括404页面内容的页面判断规则收集为所述通用404页面规则;收集所述自定义404页面规则包括:访问网站的正常网页,提取该正常网页的网页内容、网页状态代码和HTTP头部;访问该网站不存在的网页,提取反馈网页的网页内容、网页状态代码和HTTP头部;比较该正常网页和该反馈网页的网页内容、网页状态代码和HTTP头部,获取404关键字,将该404关键字的页面判断规则收集为所述自定义404页面规则;收集所述自定义404页面行为规则包括:访问不存在的网页,将反馈网页的网页内容、网页状态代码和HTTP头部的页面判断规则收集为所述自定义404页面行为规则;收集所述自定义错误页面规则包括:访问网站的正常网页,提取该正常网页的网页内容、网页状态代码和HTTP头部;访问该网站不存在的网页,提取反馈网页的网页内容、网页状态代码和HTTP头部,其中,该反馈网页为除404网页之外的错误网页;比较该正常网页和该反馈网页的网页内容、网页状态代码和HTTP头部,获取错误网页关键字,将该错误网页关键字的页面判断规则收集为所述自定义错误页面规则。
优选地,所述收集所述自定义404页面规则的所述访问该网站不存在的网页,提取反馈网页的网页内容、网页状态代码和HTTP头部的步骤包括:判断访问该不存在的网页时,返回的网页的网页状态代码是否为404;若否,则判断该反馈网页的网页状态代码是否为重定向代码;若为重定向代码,则判断是否有重定向页面,若有,则获取所述重定向页面,将该重定向页面作为所述反馈网页,提取该重定向页面的URL、网页内容、网页状态代码和HTTP头部;所述收集所述自定义错误页面规则的访问该网站不存在的网页,提取反馈网页的网页内容、网页状态代码和HTTP头部的步骤包括:判断访问该不存在的网页时,返回的网页的网页状态代码是否为404;若否,则判断该反馈网页的网页状态代码是否为重定向代码;若为重定向代码,则判断是否有重定向页面,若有,则获取所述重定向页面,将该重定向页面作为所述反馈网页,提取该重定向页面的URL、网页内容、网页状态代码和HTTP头部。
优选地,所述判断访问的网页是否符合以下规则至少之一:通用异常页面规则、自定义异常页面规则、自定义异常页面行为规则的步骤包括:提取所述访问的网页的网页内容、网页状态代码和HTTP头部;判断所述访问的网页的网页内容、或者所述网页状态代码、或者所述HTTP头部是否符合以下规则至少之一:通用异常页面规则、自定义异常页面规则、自定义异常页面行为规则。
优选地,所述网页检测方法应用于漏洞扫描过程;在确定所述访问的网页为异常页面之后,还包括:不提示或不上报所述异常页面为漏洞页面。
为了解决上述问题,本发明实施例还公开了一种扫描引擎,包括:扫描规则收集模块,用于收集以下规则至少之一:通用异常页面规则、自定义异常页面规则、自定义异常页面行为规则;漏洞检测模块,用于判断访问的网页是否符合以下规则至少之一:通用异常页面规则、自定义异常页面规则、自定义异常页面行为规则;漏洞验证模块,用于若所述漏洞检测模块的判断结果为符合,则确定所述访问的网页为异常页面;其中,所述通用异常页面规则用于根据网页的状态代码或网页内容确定网页是否为异常页面,所述自定义异常页面规则用于根据从网页中提取的异常页面关键字确定网页是否为异常页面,所述自定义异常页面行为规则用于根据设定的访问异常页面的行为确定网页是否为异常页面。
优选地,所述异常页面包括404页面和除404页面之外的其它错误页面;所述通用异常页面规则包括通用404页面规则,所述自定义异常页面规则包括自定义404页面规则,所述自定义异常页面行为规则包括自定义404页面行为规则;其中,所述通用404页面规则用于根据网页的状态代码或网页内容确定网页是否为404页面,所述自定义404页面规则用于根据从网页中提取的404关键字确定网页是否为404页面,所述自定义404页面行为规则用于根据设定的访问404页面的行为确定网页是否为404页面。
优选地,所述自定义异常页面规则还包括自定义错误页面规则,所述自定义错误页面规则用于根据从网页中提取的错误网页关键字确定网页是否为除404页面之外的其它错误页面。
优选地,扫描规则收集模块,用于收集所述通用404页面规则、所述自定义404页面规则、所述自定义404页面行为规则、所述自定义错误页面规则中的至少一种。
优选地,所述收集模块包括以下至少之一:通用404页面规则收集模块,用于将网页状态代码为404和/或网页内容包括404页面内容的页面判断规则收集为所述通用404页面规则;自定义404页面规则收集模块,用于访问网站的正常网页,提取该正常网页的网页内容、网页状态代码和HTTP头部;访问该网站不存在的网页,提取反馈网页的网页内容、网页状态代码和HTTP头部;比较该正常网页和该反馈网页的网页内容、网页状态代码和HTTP头部,获取404关键字,将该404关键字的页面判断规则收集为所述自定义404页面规则;自定义404页面行为规则收集模块,用于访问不存在的网页,将反馈网页的网页内容、网页状态代码和HTTP头部的页面判断规则收集为所述自定义404页面行为规则;自定义错误页面规则收集模块,用于访问网站的正常网页,提取该正常网页的网页内容、网页状态代码和HTTP头部;访问该网站不存在的网页,提取反馈网页的网页内容、网页状态代码和HTTP头部,其中,该反馈网页为除404网页之外的错误网页;比较该正常网页和该反馈网页的网页内容、网页状态代码和HTTP头部,获取错误网页关键字,将该错误网页关键字的页面判断规则收集为所述自定义错误页面规则。
优选地,所述自定义404页面规则收集模块在访问该网站不存在的网页,提取反馈网页的网页内容、网页状态代码和HTTP头部时,判断访问该不存在的网页时,返回的网页的网页状态代码是否为404;若否,则判断该反馈网页的网页状态代码是否为重定向代码;若为重定向代码,则判断是否有重定向页面,若有,则获取所述重定向页面,将该重定向页面作为所述反馈网页,提取该重定向页面的URL、网页内容、网页状态代码和HTTP头部;所述自定义错误页面规则收集模块在访问该网站不存在的网页,提取反馈网页的网页内容、网页状态代码和HTTP头部时,判断访问该不存在的网页时,返回的网页的网页状态代码是否为404;若否,则判断该反馈网页的网页状态代码是否为重定向代码;若为重定向代码,则判断是否有重定向页面,若有,则获取所述重定向页面,将该重定向页面作为所述反馈网页,提取该重定向页面的URL、网页内容、网页状态代码和HTTP头部。
优选地,所述扫描引擎设置于服务器端,用于所述服务器端进行漏洞扫描;所述扫描引擎还包括:结果执行模块,用于在所述漏洞验证模块确定所述访问的网页为异常页面之后,不提示或不上报所述异常页面为漏洞页面。
与现有技术相比,本发明实施例具有以下优点:
本发明实施例根据多个异常页面检测规则,判断访问的网页是否符合多个检测规则中的一个或多个,来确定访问的网页是否是异常网页。与现有技术中,尤其是现有漏洞扫描技术中,不判断异常页面,直接将这些页面作为漏洞上报相比,能够准确地对异常页面进行判断。进一步地,若将该方案应用于漏洞扫描过程中,则可以有效确定这些页面为异常页面而非漏洞,从而有效避免漏洞的误识误报,提升用户使用漏洞扫描产品的使用体验。
具体实施方式
为使本发明实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明实施例作进一步详细的说明。
实施例一
参照图1,示出了根据本发明实施例一的一种网页检测方法的步骤流程图。
本实施例的网页检测方法包括以下步骤:
步骤S10:抓取目标网站的URL或内容,通过返回的结果确定是网页,访问该网页。
对目标网站的URL(统一资源定位符)或内容的抓取可以由蜘蛛或爬虫技术实现,通过蜘蛛或爬虫返回的结果确定是否是网站的网页,若确定是网页,则对该网页进行访问。
步骤S20:判断访问的网页是否符合以下规则至少之一:通用异常页面规则、自定义异常页面规则、自定义异常页面行为规则;
其中,通用异常页面规则用于根据网页的状态代码或网页内容确定网页是否为异常页面,自定义异常页面规则用于根据从网页中提取的异常页面关键字确定网页是否为异常页面,自定义异常页面行为规则用于根据设定的访问异常页面的行为确定网页是否为异常页面。
步骤S30:若访问的网页符合通用异常页面规则、自定义异常页面规则、自定义异常页面行为规则中的至少一个,则确定访问的网页为异常页面。
本实施例根据多个异常页面检测规则,判断访问的网页是否符合多个检测规则中的一个或多个,来确定访问的网页是否是异常网页。与现有技术中,尤其是现有漏洞扫描技术中,不判断异常页面,直接将这些页面作为漏洞上报相比,提高了漏洞判断的准确性、降低了漏洞误报率。
实施例二
参照图2,示出了根据本发明实施例二的一种网页检测方法的步骤流程图。
本实施例为实施例一的进一步优选方案,本实施例中,异常页面包括404页面的除404页面之外的其它错误页面,相对应地,通用异常页面规则包括通用404页面规则、自定义异常页面规则包括自定义404页面规则和自定义错误页面规则、自定义异常页面行为规则自定义404页面行为规则。
本实施例的网页检测方法包括以下步骤:
步骤S102:访问网页,判断访问的网页是否符合以下规则至少之一:通用404页面规则、自定义404页面规则、自定义404页面行为规则、自定义错误页面规则。
其中,通用404页面规则用于根据网页的状态代码或网页内容确定网页是否为404页面;自定义404页面规则用于根据从网页中提取的404关键字确定网页是否为404页面;自定义404页面行为规则用于根据设定的访问404页面的行为确定网页是否为404页面;自定义错误页面规则用于根据从网页中提取的错误网页关键字确定网页是否为除404页面之外的其它错误页面。
步骤S104:若访问的网页符合通用404页面规则、自定义404页面规则、自定义404页面行为规则、自定义错误页面规则中的至少一个,则确定该访问的网页为404页面或为除404页面之外的其它错误页面。
需要说明的是,若检测主要针对404页面,则自定义错误页面规则为可选规则。
通过本实施例,根据多个404页面或错误页面检测规则,判断访问的网页是否符合多个检测规则中的一个或多个,来确定访问的网页是否是404网页或者是除404网页之外的其它错误网页。与现有技术中,尤其是现有漏洞扫描技术中,不判断404页面或其它错误页面,直接将这些页面作为漏洞上报相比,能够准确地对404页面或其它错误页面进行判断。进一步地,若将该方案应用于漏洞扫描过程中,则可以有效确定这些页面为非漏洞页面,从而对这些页面不进行漏洞提示或不进行漏洞上报,有效避免了漏洞的误识误报,提升了用户的使用体验。
实施例三
参照图3,示出了根据本发明实施例三的一种网页检测方法的步骤流程图。
本实施例的网页检测方法包括以下步骤:
步骤S202:收集通用404页面规则、自定义404页面规则、自定义404页面行为规则、自定义错误页面规则中的至少一种。
本实施例中,可以设定收集上述全部规则,在实际应用中,也可以根据需要仅收集上述规则中的部分。在收集上述规则时,可以一次性收集设置使用,然后间隔设定时间统一对前次收集的规则进行更新;也可以动态收集规则,实时进行更新。
收集到的通用404页面规则可以包括:判断网页状态代码是否为404,和/或,判断网页内容是否包括404页面内容,如网页内容中有“404NOTFOUND”、“404…Error”、“Error…404”、”Page…not…found”、“File…not…found”、“Resource…not…found”、“error…request”、“request…error”、“Unable to open”、“Unable to find”、“No such file”、“404.html”、“找不到文件”、“页面未找到”、“资源未找到”、“不能找到该页面”内容等。也即,在收集时,将网页状态代码为404和/或网页内容包括404页面内容的页面判断规则收集为通用404页面规则。通用404页面规则包括了目前常用的404页面判断规则,有效兼容了现有的404页面识别和判断技术。
收集到的自定义404页面规则可以包括:判断网页的网页内容、网页状态代码、HTTP(超文本传输协议)头部中是否存在包括提取到的404关键字。若网页的网页内容、网页状态代码、HTTP头部中的任意一个或多个中包括404关键字,则认为是404页面。其中,404关键字通过对访问的网站的正常网页和访问该网站不存在的网页时反馈的网页中的网页内容、网页状态代码和HTTP头部进行比较提取获得,通常为正常网页中不可能存在的文字、图片、或链接等内容。也即,在收集时,访问网站的正常网页,提取该正常网页的网页内容、网页状态代码和HTTP头部;访问该网站不存在的网页,提取反馈网页的网页内容、网页状态代码和HTTP头部;比较该正常网页和该反馈网页的网页内容、网页状态代码和HTTP头部,获取404关键字,将该404关键字的页面判断规则收集为自定义404页面规则。对于某些网页来说,其本质为404页面,但却不使用404的网页状态代码,不包括404网页内容,而表现为其它网页状态代码或跳转页面的形式,这时,通过自定义404页面规则可以有效地识别这些实质意义上的404页面。通过比较正常页面和反馈的错误页面获取404关键字,保证了自定义404规则的有效性,可以更为准确有效地识别和判断404页面。
收集到的自定义404页面行为规则可以包括:判断访问某一网页时,该网页反馈的网页内容、网页状态代码和HTTP头部是否与保存的网页内容、网页状态代码和HTTP头部一致/相似,若一致/相似,则认为是404页面。也即,在收集时,将访问不存在的网页时反馈的反馈网页的网页内容、网页状态代码和HTTP头部的页面判断规则收集为自定义404页面行为规则。通过自定义404页面行为规则的收集,尽可能涵盖了可能的404页面情况,在一定程度上避免了404页面的漏识漏判。
收集到的自定义错误页面规则可以包括:判断网页的网页内容、网页状态代码、HTTP头部中是否存在包括提取到的错误网页关键字。若网页的网页内容、网页状态代码、HTTP头部中的任意一个或多个中包括错误网页关键字,则认为是错误网页页面。其中,错误网页关键字通过对访问的网站的正常网页和访问该网站不存在的网页时反馈的除404网页之外的其它错误网页中的网页内容、网页状态代码和HTTP头部进行比较提取获得,通常为除404关键字外的、正常网页中不可能存在的文字、图片、或链接等内容。也即,在收集时,访问网站的正常网页,提取该正常网页的网页内容、网页状态代码和HTTP头部;访问该网站不存在的网页,提取反馈网页的网页内容、网页状态代码和HTTP头部,其中,该反馈网页为除404网页之外的错误网页;比较该正常网页和该反馈网页的网页内容、网页状态代码和HTTP头部,获取错误网页关键字,将该错误网页关键字的页面判断规则收集为自定义错误页面规则。对于某些网页来说,其为不同于404页面的错误页面,这时,通过自定义错误页面规则可以有效地识别这些非404错误页面。通过比较正常页面和反馈的错误页面获取错误网页关键字,保证了自定义错误网页规则的有效性,可以更为准确有效地识别和判断除404页面之外的其它错误页面。
通过收集上述规则,可以全面、有效地对404页面或除404页面外的其它错误页面进行识别和判断。另外,上述规则的收集方式仅为示例性说明,本领域技术人员在实际使用中还可以使用其它适当方式对规则进行收集,如根据历史数据收集或根据实践经验手工输入等。
步骤S204:保存收集到的规则并确认其有效性。
规则有效性的确认可以由本领域技术人员根据实际情况采用适当方式实施,如通过使用规则测试网页的方式实施等,本发明实施例对此不作限制。
步骤S206:判断访问的网页是否符合通用404页面规则、自定义404页面规则、自定义404页面行为规则、自定义错误页面规则中的至少一个。
优选地,可以提取访问的网页的网页内容、网页状态代码和HTTP头部;然后,判断提取到的所述访问的网页的网页内容、或者网页状态代码、或者HTTP头部中是否存在符合通用404页面规则、自定义404页面规则、自定义404页面行为规则、自定义错误页面规则中的一个或多个。
步骤S208:确定访问的网页符合通用404页面规则、自定义404页面规则、自定义404页面行为规则、自定义错误页面规则中的至少一个,确认该访问的网页为404页面或除404页面之外的其它错误页面。
当访问的网页符合通用404页面规则、自定义404页面规则、自定义404页面行为规则中的一个或多个时,可以确认该访问的网页为404页面;当访问的网页符合自定义错误页面规则时,可以确认该访问的网页为除404页面之外的其它错误页面。
需要说明的是,本实施例的网页检测方法可以应用于漏洞扫描过程中,当确认了访问的网页为404页面或其它错误页面时,则漏洞扫描产品不会将该页面误认为是漏洞而进行提示或上报,也即,不提示或不上报该404页面或其它错误页面,从而减少了漏洞的误识误报。但不限于此,本领域技术人员应当明了,本实施例的网页检测方法同样可应用于其它任意存在错误页面检测需求的场景。
通过本实施例,有效实现了404页面和其它错误页面检测规则的收集和判断,能够准确地对404页面和除404页面外的其它错误页面进行准确地识别和判断,将其应用于漏洞扫描技术中,可以有效避免漏洞的误识误报,提高页面和漏洞识别准确度,提升用户使用体验。
实施例四
参照图4,示出了根据本发明实施例四的一种网页检测方法的步骤流程图。
本实施例以漏洞扫描工具在漏洞扫描过程中应用网页检测方法为例进行说明。现有技术中,随着网站数量的增加,传统的或自定义的错误页面或404页面也在急剧增加。其中,很多404页面都是自定义后的,返回的网页状态代码并不是404,通过判断网页状态代码是无法正确判断出来这些页面即是404页面。另外,还有一部分错误页面,如被防火墙拦截的错误页面,也无法被有效识别和判断。针对这种情况,可以使用本实施例的网页检测方法进行识别和判断,以避免将404页面或其它错误页面误识为漏洞,导致漏洞扫描工具的误识误报。
本实施例的网页检测方法包括以下步骤:
步骤S302:漏洞扫描工具收集通用404页面规则。
通用404页面规则是现有404页面判断规则的统称,包括常用的404页面判断规则,如网页状态代码为404、网页内容包括“404NOT FOUND”、“页面没有找到”等。
将大部分网站都采用的常规404规则或自定义404规则收集为通用404页面规则后,保存该通用404页面规则,优选地,进一步确认该规则的有效性。
步骤S304:漏洞扫描工具收集网站自定义的自定义404页面规则。
对自定义404页面规则的收集包括对网站的页面和文件的收集。
具体地,可以包括:
步骤a1:访问蜘蛛或爬虫返回的网站的正常页面,并提取网页内容为html_ok,提取网页状态代码为http_status_ok,提取网页的http头部为http_head_ok。
步骤b1:访问网站的一个不存在的页面,并提取返回的反馈页面的网页内容为html_err1,提取网页状态代码为http_status_err1,提取反馈页面的http头部为http_head_err1。
其中,对网站不存在页面的访问可以通过在网站正常页面后附加一个不存在的页面,再访问该合成页面实现,如,在正常网页地址后附加一个字符串生成新的网页地址,而该网页地址不属于该网站的正常网页地址,对该网页地址进行访问。当然,不限于此,本领域技术人员在实际使用中,也可以采用其它访问不存在页面的方式,本发明实施例对此不作限制。
此外,还可以提取反馈页面的URL(统一资源定位符)。
步骤c1:判断http_status_err1是否为404,如果是404,则符合通用404页面规则,无需另外收集自定义404页面规则;如果不是404,则进行步骤d1。
步骤d1:判断http_status_err1是否为重定向代码,如为300-400之间的代码,如果不是重定向代码,如不为300-400之间的代码,则进入步骤e1;如果是重定向代码,如为300-400之间的代码,即代表页面开启了跳转功能,进而获取重定向页面;判断是否获取到重定向页面,如果有重定向页面,则对该重定向页面进行处理,将重定向页面的URL提取为404关键字,或者从重定向页面的页面内容中提取404关键字,保存为自定义404页面规则;如果没有重定向页面,则比较页面内容html_err1和html_ok、网页状态代码http_status_ok和http_status_err1、网页的http头部http_head_ok和http_head_err1,提取404关键字,保存为自定义404页面规则。
404关键字可以为文字、图片、链接等中的一种或多种,提取到的404可以有多个,可以将这多个404关键字保存为自定义404页面规则,也可以仅将其中的一部分,如一个,保存为自定义404页面规则,如,选取占用空间最少的404关键字,或者,有多个文字形式的404关键字时,可以选取长度最短的404关键字,以提高自定义404页面规则的收集和404页面的识别效率。
步骤e1:如果不是跳转页面,判断页面内容html_err1是否符合通用404页面规则,如果是,则退出;如果不是,则比较页面内容html_err1和html_ok、网页状态代码http_status_ok和http_status_err1、网页的http头部http_head_ok和http_head_err1,提取404关键字,保存为自定义404页面规则。
步骤S306:漏洞扫描工具收集网站的自定义错误页面规则。
对自定义错误页面规则的收集包括对被防火墙拦截、崩溃、无法访问等除404页面外的错误页面的收集。
具体地,可以包括:
步骤a2:访问蜘蛛或爬虫返回的网站的正常页面,并提取网页内容为html_ok,提取网页状态代码为http_status_ok,提取网页的http头部为http_head_ok。
步骤b2:访问网站的一个不存在文件,并提取返回的反馈页面的网页内容为html_err1,提取网页状态代码为http_status_err1,提取反馈页面的http头部为http_head_err1。其中,该反馈页面为除404页面外的错误页面。
其中,对网站不存在页面的访问可以通过在网站正常页面后附加一个不存在的页面,再访问该合成页面实现,如,在正常网页地址后附加一个字符串生成新的网页地址,而该网页地址不属于该网站的正常网页地址,对该网页地址进行访问。当然,不限于此,本领域技术人员在实际使用中,也可以采用其它访问不存在页面的方式,本发明实施例对此不作限制。
此外,还可以提取反馈页面的URL。
步骤c2:判断http_status_err1是否为404,如果是404,则符合通用404页面规则,无需另外提取自定义错误页面规则;如果不是404,则进行步骤d2。
步骤d2:判断http_status_err1是否为重定向代码,如为300-400之间的代码,如果不是重定向代码,如不为300-400之间的代码,则进入步骤e2;如果是重定向代码,如为300-400之间的代码,即代表页面开启了跳转功能,进而获取重定向页面;判断是否获取到重定向页面,如果有重定向页面,则对该重定向页面进行处理,提取错误页面关键字,保存为网站自定义错误页面规则;如果没有重定向页面,则比较页面内容html_err1和html_ok、网页状态代码http_status_ok和http_status_err1、网页的http头部http_head_ok和http_head_err1,提取错误网页关键字,保存为网站自定义错误页面规则。
同404关键字类似,错误页面关键字也可以为文字、图片、链接等中的一种或多种,提取到的错误页面关键字可以有多个,可以将这多个错误页面关键字保存为自定义错误页面规则,也可以仅将其中的一部分,如一个,保存为自定义错误页面规则,如,选取占用空间最少的错误页面关键字,或者,有多个文字形式的错误页面关键字时,可以选取长度最短的错误页面关键字,以提高自定义错误页面页面规则的收集和错误页面的识别效率。
步骤e2:如果不是跳转页面,判断页面内容html_err1是否符合通用404规则,如果是,则退出;如果不是,则比较页面内容html_err1和html_ok、网页状态代码http_status_ok和http_status_err1、网页的http头部http_head_ok和http_head_err1,提取错误页面关键字,保存为网站自定义错误页面规则。
步骤S308:漏洞扫描工具收集网站的自定义404页面行为规则。
即,收集网站页面符合通用404页面规则和/或自定义404页面规则的行为。
具体地,可以包括:
步骤a3:访问网站的一个不存在页面,提取返回的反馈页面的网页内容为html_err1,提取网页状态代码为http_status_err1,提取反馈页面的http头部为http_head_err1,并保存。
步骤b3:判断http_status_err1是否为404,如果是404,则符合通用404页面规则,无需另外提取自定义404页面行为规则;如果不是404,则进行步骤c3。
步骤c3:判断http_status_err1是否为重定向代码,如为300-400之间的代码,如果不是重定向代码,如不为300-400之间的代码,则进入步骤d3;如果是重定向代码,如为300-400之间的代码,即代表页面开启了跳转功能,进而获取重定向页面;判断是否获取到重定向页面,如果有重定向页面,则对该重定向页面进行处理,提取网页内容为html_err2,提取网页状态代码为http_status_err2,提取反馈页面的http头部为http_head_err2,并保存为网站自定义404页面行为规则;如果没有重定向页面,则将网页内容html_err1,网页状态代码http_status_err1,http头部http_head_err1,保存为网站自定义404页面行为规则。
步骤d3:如果不是跳转页面,判断页面内容html_err1是否符合通用404规则,如果是,则退出;如果不是,则将网页内容html_err1,网页状态代码http_status_err1,http头部http_head_err1,保存为网站自定义错误页面规则。
需要说明的是,上述步骤S302-S308在实际执行过程中可以不分先后顺序,也可以并行执行。
步骤S310:当访问一个网页时,漏洞扫描工具判断该网页是否符合通用404页面规则,如果是,则为404页面,漏洞扫描工具不提示和/或不上报该页面;如果不是,则继续步骤S312。
具体地,本步骤可以包括:
步骤a4:访问网站页面,并提取网页内容为html,网页状态代码为http_status,网页http头部为http_head。
步骤b4:判断http_status是否为404,如果是,则确定为404页面,退出网页检测流程;如果不是,则根据http_status或网页内容html或网页http头部http_head循环判断是否满足通用404页面规则,若满足,则进行步骤c4;若不满足,则继续步骤S312。
步骤c4:满足通用404页面规则,则表示该页面是404页面,退出网页检测流程,,漏洞扫描工具不提示和/或不上报该页面。
步骤S312:漏洞扫描工具判断访问的网页是否符合自定义404页面规则,如果是,则为404页面,漏洞扫描工具不提示和/或不上报该页面;如果不是,则继续步骤S314。
由步骤S310可知,该访问的网页的网页状态代码不为404,并且不满足通用404页面规则;则根据http_status或网页内容html或http头部http_head循环判断是否满足自定义404页面规则;如果满足自定义404页面规则,则表示该页面是404页面,退出网页检测流程,漏洞扫描工具不提示和/或不上报该页面;如果不是,则继续步骤S314。
步骤S314:漏洞扫描工具判断该访问的网页是否符合自定义错误页面规则,如果是,则为错误页面,漏洞扫描工具不提示和/或不上报该页面;如果不是,则继续步骤S316。
由步骤S312可知,该访问的网页的网页状态代码不为404,并且不满足通用404页面规则,也不满足自定义404页面规则;则根据http_status或网页内容html或http头部http_head循环判断是否满足自定义错误页页面规则;如果满足自定义错误页页面规则,则表示该页面是除404页面外的其它错误页面,退出网页检测流程,漏洞扫描工具不提示和/或不上报该页面;如果不是,则继续步骤S316。
步骤S316:漏洞扫描工具判断该访问的网页是否符合自定义404页面行为规则,如果是,则为404页面,漏洞扫描工具不提示和/或不上报该页面;如果不是,则为正常页面。
由步骤S314可知,该访问的网页的网页状态代码不为404,并且不满足通用404页面规则、自定义404页面规则和自定义错误页面规则;则根据http_status或网页内容html或http头部http_head循环判断是否满足自定义404页面行为规则(如网页状态代码和网页内容大小相似、重定向页面相似等);如果满足自定义404页面行为规则,则表示该页面为404页面,退出网页检测流程;如果不是,则表示该网页可能为正常页面。
需要说明的是,上述判断流程仅为示例性说明,本领域技术人员应当理解,在实际应用中,步骤S310-S316对网页是否符合规则的判断可以以任意顺序执行,如首先判断是否符合自定义错误页面规则,或者,首先判断是否符合自定义404页面规则等。
通过本实施例,实现了对404页面或其它错误页面的检测规则的收集,以及对404页面或其它错误页面的准确识别和判断,从而能够更加准确、有效地识别网页是404页面,或是其它错误页面,或是正确页面,有效避免了漏洞扫描工具对漏洞的误识误报。
实施例五
参照图5,示出了根据本发明实施例五的一种扫描引擎的结构框图。
本实施例的扫描引擎包括:扫描规则收集模块406,用于收集以下规则至少之一:通用异常页面规则、自定义异常页面规则、自定义异常页面行为规则;漏洞检测模块402,用于判断访问的网页是否符合以下规则至少之一:通用异常页面规则、自定义异常页面规则、自定义异常页面行为规则,其中,通用异常页面规则用于根据网页的状态代码或网页内容确定网页是否为异常页面,自定义异常页面规则用于根据从网页中提取的异常页面关键字确定网页是否为异常页面,自定义异常页面行为规则用于根据设定的访问异常页面的行为确定网页是否为异常页面;漏洞验证模块404,用于若漏洞检测模块402的判断结果为符合,则确定访问的网页为异常页面。
优选地,异常页面包括404页面和除404页面之外的其它错误页面;通用异常页面规则包括通用404页面规则,自定义异常页面规则包括自定义404页面规则,自定义异常页面行为规则包括自定义404页面行为规则;其中,通用404页面规则用于根据网页的状态代码或网页内容确定网页是否为404页面,自定义404页面规则用于根据从网页中提取的404关键字确定网页是否为404页面,自定义404页面行为规则用于根据设定的访问404页面的行为确定网页是否为404页面。
优选地,自定义异常页面规则还包括自定义错误页面规则,自定义错误页面规则用于根据从网页中提取的错误网页关键字确定网页是否为除404页面之外的其它错误页面。
优选地,本实施例的扫描规则收集模块406,用于收集通用404页面规则、自定义404页面规则、自定义404页面行为规则、自定义错误页面规则中的至少一种。
优选地,扫描规则收集模块406包括以下至少之一:通用404页面规则收集模块4062,用于将网页状态代码为404和/或网页内容包括404页面内容的页面判断规则收集为通用404页面规则;自定义404页面规则收集模块4064,用于访问网站的正常网页,提取该正常网页的网页内容、网页状态代码和HTTP头部;访问该网站不存在的网页,提取反馈网页的网页内容、网页状态代码和HTTP头部;比较该正常网页和该反馈网页的网页内容、网页状态代码和HTTP头部,获取404关键字,将该404关键字的页面判断规则收集为自定义404页面规则;自定义404页面行为规则收集模块4066,用于访问不存在的网页,将反馈网页的网页内容、网页状态代码和HTTP头部的页面判断规则收集为自定义404页面行为规则;自定义错误页面规则收集模块4068,用于访问网站的正常网页,提取该正常网页的网页内容、网页状态代码和HTTP头部;访问该网站不存在的网页,提取反馈网页的网页内容、网页状态代码和HTTP头部,其中,该反馈网页为除404网页之外的错误网页;比较该正常网页和该反馈网页的网页内容、网页状态代码和HTTP头部,获取错误网页关键字,将该错误网页关键字的页面判断规则收集为自定义错误页面规则。
优选地,自定义404页面规则收集模块4064在访问该网站不存在的网页,提取反馈网页的网页内容、网页状态代码和HTTP头部时,判断访问该不存在的网页时,返回的网页的网页状态代码是否为404;若否,则判断该反馈网页的网页状态代码是否为重定向代码;若为重定向代码,则判断是否有重定向页面,若有,则获取所述重定向页面,将该重定向页面作为所述反馈网页,提取该重定向页面的URL、网页内容、网页状态代码和HTTP头部。
优选地,自定义错误页面规则收集模块4068在访问该网站不存在的网页,提取反馈网页的网页内容、网页状态代码和HTTP头部时,判断访问该不存在的网页时,返回的网页的网页状态代码是否为404;若否,则判断该反馈网页的网页状态代码是否为重定向代码;若为重定向代码,则判断是否有重定向页面,若有,则获取所述重定向页面,将该重定向页面作为所述反馈网页,提取该重定向页面的URL、网页内容、网页状态代码和HTTP头部。
优选地,漏洞检测模块402,用于提取访问的网页的网页内容、网页状态代码和HTTP头部;判断访问的网页的网页内容、或者网页状态代码、或者HTTP头部是否符合以下规则至少之一:通用404页面规则、自定义404页面规则、自定义404页面行为规则、自定义错误页面规则。
优选地,本实施例的扫描引擎设置于服务器端,用于服务器端进行漏洞扫描;该扫描引擎还包括:结果执行模块(图中未示出),用于在漏洞验证模块404确定访问的网页为异常页面之后,不提示或不上报该异常页面为漏洞页面。
优选地,本实施例的扫描引擎可以应用于漏洞扫描服务器集群。
本实施例的扫描引擎用于实现前述多个方法实施例中相应的网页检测方法,并具有相应的方法实施例的有益效果,在此不再赘述。
本发明实施例提供了一种正确识别网站页面是否是错误页面或404页面的方案,在如今讲究人性化和注重用户体验的互联网时代,将有越来越多的网站会采用自定义错误或404页面,通过本发明实施例的方案能够很好地判断一个网站页面是否为错误页面或为404页面,能够非常准确地判断出一个漏洞,减少误报,提升用户体验。
本发明实施例可以实施在任何支持图形处理、互联网内容撷取和渲染的装置(或多个装置)上。这些装置包括但不限于个人计算机、集群服务器、移动电话、工作站、嵌入式系统、游戏机、电视、机顶盒,或任何其它支持计算机图形和内容显示的计算装置。这些装置可以包括但不限于拥有执行和储存指令的一个或多个处理器和存储器的装置。这些装置可以包括软件、固件和硬件。软件可以包括一个或多个应用程序和操作系统。硬件可以包括但不限于处理器、存储器及显示器。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置实施例扫描引擎而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上对本发明所提供的一种网页检测方法和扫描引擎进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。