网页漏洞检测方法和装置
技术领域
本发明涉及计算机领域,具体而言,涉及一种网页漏洞检测方法和装置。
背景技术
目前,网页Web漏洞通常是指网站程序上的漏洞,可能是由于代码编写者在编写代码时考虑不周全等原因而造成的漏洞,常见的Web漏洞有Sql注入、Xss漏洞、上传漏洞等。如果网站存在Web漏洞并被黑客攻击者利用,攻击者可以轻易控制整个网站,并可进一步提权获取网站服务器权限,控制整个服务器。
而目前所采用的漏洞检测方式是:对于某种漏洞通过漏洞扫描器在各个端口逐个扫描。采用这种漏洞检测的方式,因针对不同的漏洞均需开发一套有针对性的检测算法,所以会导致检测的效率大大降低,不利于保护用户终端,使得用户终端在此期间很容易遭到攻击。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种网页漏洞检测方法和装置,以至少解决现有技术中针对不同的网页漏洞均需单独开发相应的检测算法所导致的网页漏洞的检测效率较低的技术问题。
根据本发明实施例的一个方面,提供了一种网页漏洞检测方法,包括:接收对待检测目标网页执行漏洞检测的漏洞检测任务,其中,上述漏洞检测任务至少用于指示所要检测的漏洞;根据上述漏洞检测任务获取与上述漏洞对应的配置文件,其中,上述配置文件中包括用于从待检测网页中匹配出上述待检测目标网页的匹配条件与用于对上述待检测目标网页进行漏洞检测的测试用例的指示信息;使用上述配置文件检测上述待检测目标网页是否存在上述配置文件所指示的上述漏洞。
根据本发明实施例的另一方面,还提供了一种网页漏洞检测装置,包括:接收单元,用于接收对待检测目标网页执行漏洞检测的漏洞检测任务,其中,上述漏洞检测任务至少用于指示所要检测的漏洞;获取单元,用于根据上述漏洞检测任务获取与上述漏洞对应的配置文件,其中,上述配置文件中包括用于从待检测网页中匹配出上述待检测目标网页的匹配条件与用于对上述待检测目标网页进行漏洞检测的测试用例的指示信息;检测单元,用于使用上述配置文件检测上述待检测目标网页是否存在上述配置文件所指示的上述漏洞。
在本发明实施例中,通过根据接收到的所要检测的待检测目标网页的漏洞检测任务,获取与上述漏洞相对应的配置文件,其中,上述配置文件至少包括针对不同的漏洞所设置的匹配条件以及测试用例,通过对上述配置文件中匹配条件以及测试用例所对应的变量参数的增加或修改,实现了在无需重新开发一套复杂的检测算法的情况下,就可实现对不同的网页漏洞进行检测,达到了节省漏洞检测的时间成本的目的,从而实现了提高漏洞检测的检测效率的技术效果,进而解决了现有技术中针对不同的网页漏洞均需单独开发相应的检测算法所导致的网页漏洞的检测效率较低的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种可选的网页漏洞检测方法的流程示意图;
图2是根据本发明实施例的一种可选的应用网页漏洞检测方法的硬件场景示意图;
图3是根据本发明实施例的一种可选的网页漏洞检测方法的交互示意图;
图4是根据本发明实施例的一种可选的网页漏洞检测方法中的配置文件的示意图;
图5是根据本发明实施例的另一种可选的网页漏洞检测方法的流程示意图;
图6是根据本发明实施例的又一种可选的网页漏洞检测方法的流程示意图;
图7是根据本发明实施例的一种可选的网页漏洞检测装置的结构示意图;
图8是根据本发明实施例的另一种可选的网页漏洞检测装置的结构示意图;以及,
图9是根据本发明实施例的一种可选的应用网页漏洞检测方法的控制服务器的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例1
根据本发明实施例,提供了一种网页漏洞检测方法,如图1所示,该方法包括:
S102,接收对待检测目标网页执行漏洞检测的漏洞检测任务,其中,漏洞检测任务至少用于指示所要检测的漏洞;
S104,根据漏洞检测任务获取与漏洞对应的配置文件,其中,配置文件中包括用于从待检测网页中匹配出待检测目标网页的匹配条件与用于对待检测目标网页进行漏洞检测的测试用例的指示信息;
S106,使用配置文件检测待检测目标网页是否存在配置文件所指示的漏洞。
可选地,在本实施例中,上述网页漏洞检测方法可以应用于如图2所示的控制服务器202和多个网站服务器204所构成的硬件环境中。如图2所示,控制服务器202通过网络与多个网站服务器204进行连接,上述网络包括但不限于:广域网、城域网或局域网。控制服务器202利用配置文件对待检测目标网页所在的任意一个网站服务器204进行漏洞检测,其中,上述待检测目标网页为从待检测网页中筛选出的与上述配置文件相匹配的用于进行漏洞检测的网页。
可选地,针对不同的网页漏洞可以有不同的配置模板,根据相同或不同的配置模板为不同的漏洞检测任务生成不同的配置文件,其中,上述配置模板包括与上述配置文件中的匹配条件和测试用例对应的变量参数,不同的配置模板的变量参数不同,根据相同的配置模板生成的不同的配置文件中的变量参数的取值不同。进而实现利用配置模板对不同的网页漏洞进行漏洞检测,以达到提高网页漏洞的检测效率的目的。上述举例只是一种示例,本实施例对此不做任何限定。
可选地,在本实施例中,上述漏洞检测任务可以包括但不限于指示所要检测的漏洞、指示所要检测的待检测目标网页,其中用于指示上述待检测目标网页的信息可以至少包括上述待检测网页的类型、待检测目标网页的后缀。
可选地,在本实施例中,上述配置文件中还包括以下至少之一:配置文件的描述信息、配置文件的编号、配置文件所指示的漏洞的风险等级、配置条件、测试用例,其中,上述配置条件包括但不限于:预定类型、预定后缀,其中,上述预定类型用于匹配待检测网页的地址的类型,预定后缀用于匹配类型为预定类型的地址的后缀;上述测试用例的指示信息至少包括:测试用例的地址、测试用例的输入方式、测试用例所指示的漏洞的描述信息、测试用例所指示的正则表达式。
可选地,在本实施例中,上述匹配条件用于对上述待检测网页进行筛选,得到存在所要检测的漏洞的待检测目标网页,其中,上述匹配条件中的预定类型可以包括但不限于:用于匹配待检测网页的地址的类型,例如,上述类型可以为CGI、静态页面、目录。例如,CGI为用户对变量输入一定参数的网页,例如,a.php?user=bingo。上述匹配条件中的预定后缀可以但不限于用于匹配类型为预定类型的地址的后缀,例如,structs漏洞只检测.action或.do为后缀的CGI。
具体结合以下示例,如图4所示为上述配置文件的一种示意图,其中,“rulename”表示配置文件的描述信息。一个配置文件可以由多个变量参数组成;“cveid”是该配置文件的唯一编号,以便于对上述配置文件管理;“level”表示每种漏洞的风险等级;配置条件中的“URL类型”、“URL后缀”为指示本实施例所要检测的漏洞的预定类型以及预定后缀,例如,上述配置文件所要检测的漏洞是structs漏洞,则上述“URL类型”将设置为CGI,“URL后缀”将设置为.action或.do,则在使用上述配置文件进行检测时,可以通过对上述配置文件所指示的指示信息进行匹配,进而判断待检测网页中是否存在上述配置文件所指示的漏洞。通过使用上述配置文件对待检测网页中的漏洞进行检测,检测上述待检测网页中是否存在图4所示的配置文件所指示的漏洞。
可选地,在本实施例中,上述测试用例用于对待检测目标网页中所存在的漏洞进行进一步检测。例如,上述测试用例的输入地址为参数A,输入方式为“替换”,则将依次遍历上述待检测目标网页的参数A,并将上述参数A的取值替换为测试用例取值itest,以实现对上述待检测目标网页进行漏洞检测。
例如,结合上述图2所示的硬件场景,控制服务器202与其中一台网站服务器204之间的交互流程可以如图3所示:
S302,向控制服务器202输入待检测目标网页
S304,控制服务器202向上述网站服务器204发送配置文件中的指示信息所指示的测试用例;
S306,网站服务器204响应于测试用例向控制服务器202反馈测试结果;
S308,控制服务器202判断上述测试结果是否满足配置文件中的指示信息所指示的正则表达式。
可选地,在本实施例中,上述正则表达式的匹配方式包括但不限于:对上述待检测网页所反馈的测试结果进行匹配判断,其中,上述匹配可以对上述待检测网页返回的HTTP的头部head、主体body、全文hend|body中的至少一部分进行正则匹配。
进一步,具体结合图5来说明上述网页漏洞检测方法的过程:
S502,输入待检测网页;
S504,判断上述待检测网页的预定类型Urltype是否匹配,若匹配,则执行步骤S506,若不匹配则结束此次检测;
S506,若匹配,则判断上述待检测目标网页的Suffix_method标签内容是匹配还是拼接,若为匹配,则执行步骤S508,若为拼接,则执行步骤S510;
S508,查找上述待检测目标网页的后缀是否与上述预定后缀Suffix标签匹配;
S510,将预定后缀Suffix标签拼接到待检测目标网页之后;
S512~S516,利用测试用例对上述待检测目标网页中的待检测漏洞进行检测;
S518,将上述检测到的漏洞上报。
进一步,上述步骤S512~S516的检测方式可以为:向上述待检测目标网页发送所要检测的漏洞的相应的测试用例,上述待检测目标网页针对上述测试用例做出响应,返回相应的测试结果,在将上述测试结果与正则表达式进行匹配后,若匹配,则表示上述待检测目标网页中存在上述测试用例所指示的漏洞。
可选地,在本实施例中,上述步骤S508中的匹配可以为对待检测网页的预定后缀进行查找匹配,以筛选出相应的待检测目标网页进行漏洞检测。上述步骤S510中的拼接可以为对特定的目标网页的地址进行拼接得到待检测目标网页,进而对上述待检测目标网页进行漏洞检测。
通过本发明提供的实施例,通过获取到的与漏洞检测任务相对应的配置文件,对接收到的待检测目标网页执行漏洞,其中,上述配置文件中包括用于从待检测网页中匹配出待检测目标网页的匹配条件与用于对待检测目标网页进行漏洞检测的测试用例的指示信息。利用配置文件对网页漏洞进行检测,避免了对不同的网页漏洞都重新开发一套检测算法所导致的漏洞检测效率低的问题,实现了提高漏洞检测效率的效果。
作为一种可选的方案,步骤S106,使用配置文件检测待检测目标网页是否存在配置文件所指示的漏洞包括:
S1,判断接收到的待检测网页是否满足匹配条件;
S2,若待检测网页满足匹配条件,则将待检测网页作为待检测目标网页,并使用配置文件中的指示信息所指示的测试用例检测待检测目标网页是否存在配置文件所指示的漏洞。
可选地,在本实施例中,上述匹配条件包括预定类型。预定后缀,其中,预定类型用于匹配待检测网页的地址的类型,预定后缀用于匹配类型为预定类型的地址的后缀。
可选地,在本实施例中,上述图5中的步骤S508中的“匹配”可以为对待检测网页的特定后缀进行查找匹配,以筛选出相应的待检测目标网页进行漏洞检测。例如,选择匹配方式查找后缀为“.action”的网页,并利用测试用例对查找到的网页进行漏洞检测。上述图5中的步骤S510中的“拼接”可以为对特定的目标网页的地址进行拼接得到待检测目标网页,进而对上述待检测目标网页进行漏洞检测,例如,特定的目标网页为www.baidu.com,拼接后缀为“.action”,则在选择拼接方式后,利用测试用例对上述拼接后的网页进行漏洞检测。
具体结合图5所示进行说明,假设上述配置文件用于检测structs漏洞,如步骤S502~S510所示,输入待检测网页,然后判断上述待检测网页是否与Urltype中的预定类型(例如,CGI)相匹配,若匹配,则进一步判断上述待检测网页是匹配预定后缀Suffix标签还是拼接预定后缀Suffix标签,以确定得出待检测目标网页,进而对筛选出的待检测目标网页进行漏洞检测。
进一步,使用上述配置文件中的测试用例检测上述待检测目标网页中是否存在相应的漏洞,上述检测的方式可以包括但不限于:向上述待检测目标网页发送测试用例,利用上述待检测目标网页反馈的测试结果与正则表达式进行匹配,以检测出上述待检测目标网页是否存在上述配置文件所指示的漏洞。
通过本发明提供的实施例,通过利用配置文件中的匹配条件,对待检测网页进行筛选,得到满足匹配条件的待检测目标网页,进而在上述待检测目标网页中进一步利用测试用例检测,在上述待检测目标网页中是否存在配置文件所指示的漏洞。
作为一种可选的方案,判断接收到的待检测网页是否满足匹配条件包括以下之一:
作为一种可选的实施方式,判断待检测网页的地址的类型是否为匹配条件中指示的预定类型,若待检测网页的地址的类型为预定类型,则判断出待检测网页满足匹配条件。或者
具体结合图5所示的步骤S504进行描述,Urltype是否匹配,若待检测目标网页的类型为预定类型Urltype(例如,CGI),则判断出上述待检测目标网页满足匹配条件;若待检测目标网页的类型不为预定类型,则检测出上述待检测网页中并不存在配置文件所指示的漏洞。
作为另一种可选的实施方式,判断待检测网页的地址的类型是否为匹配条件中指示的预定类型,若待检测网页的地址的类型为预定类型,则判断类型为预定类型的地址的后缀是否为匹配条件中指示的预定后缀,若类型为预定类型的地址的后缀为预定后缀,则判断出待检测网页满足匹配条件。或者
具体结合图5所示进行描述,执行步骤S504,Urltype是否匹配,若待检测目标网页的类型为预定类型Urltype(例如,CGI),则执行步骤S506~S508,判断类型为预定类型(例如,CGI)的待检测目标网页的地址的后缀是否为匹配条件中指示的预定后缀Suffix标签(例如,后缀为“.php”),若类型为预定类型的地址的后缀为预定后缀(例如,后缀为“.php”),则判断出待检测网页满足匹配条件。
作为又一种可选的实施方式,判断待检测网页的地址的类型是否为匹配条件中指示的预定类型,若待检测网页的地址的类型为预定类型,则判断出待检测网页满足匹配条件,并对待检测网页的地址进行拼接,得到待检测目标网页。
具体结合图5所示的步骤S504进行描述,Urltype是否匹配,若待检测目标网页的类型为预定类型Urltype(例如,CGI),则执行图5所示的步骤S506~S510,判断出待检测网页满足匹配条件,并对上述待检测网页的地址进行拼接,拼接预定后缀Suffix标签,得到待检测目标网页,以实现对上述待检测目标网页进行漏洞检测。
通过本发明提供的实施例,通过对匹配条件中的预定类型、预定后缀以及预定条件进行匹配判断,以得到与上述匹配条件相对应的待检测目标网页,进而对上述筛选出的待检测目标网页进行漏洞检测。
作为一种可选的方案,如图6所示,使用配置文件中的指示信息所指示的测试用例检测待检测目标网页是否存在配置文件所指示的漏洞包括:
S602,向待检测目标网页发送配置文件中的指示信息所指示的测试用例;
S604,接收待检测目标网页响应于测试用例反馈的测试结果;
S606,判断测试结果是否满足配置文件中的指示信息所指示的正则表达式;
S608,若判断出测试结果满足正则表达式,则检测出待检测目标网页存在配置文件所指示的漏洞。
具体结合图5中所示S512~S516进行说明,上述配置文件中的测试用例(例如,用itest标识)所指示的指示信息为:测试用例的地址为参数A,输入方式为“替换”。测试用例在对上述待检测目标网页进行检测时,将通过依次遍历待检测目标网页的参数A,将参数A的取值替换为itest,发送上述待检测目标网页链接请求,并获取上述待检测网页所反馈的内容。
进一步,利用正则表达式中内容与上述待检测网页所反馈的内容进行正则匹配,判断上述待检测目标网页中是否存在配置文件所指示的漏洞。
通过本发明提供的实施例,通过利用测试用例对待检测目标网页进行进一步的漏洞检测,进而检测出配置文件所指示的漏洞,实现了利用配置文件中的测试用例对待检测目标网页进行漏洞检测,避免了多次开发算法,只需在配置文件中配置不同的测试用例,即可实现针对不同的网页漏洞进行的漏洞检测。
作为一种可选的实施方式,在接收对待检测目标网页执行漏洞检测的漏洞检测任务之前,还包括:
S1,根据相同或不同的配置模板为不同的漏洞检测任务生成不同的配置文件。
可选地,在本实施例中,可以利用配置模板来配置不同的配置文件,其中,上述配置模板包括与配置文件中的匹配条件和测试用例对应的变量参数,不同的配置模板的变量参数不同,根据相同的配置模板生成的不同的配置文件中的变量参数的取值不同。
通过本发明提供的实施例,通过利用配置模板对所要检测的漏洞的通用特征进行配置以得到相应的配置文件,其中,通过设置不同的变量参数以得到不同的配置文件,或为同一配置文件中的变量参数赋不同的取值,使得在无需多次开发检测算法的基础上,通过不同的配置文件检测出不同的网页漏洞,不仅减少了漏洞检测的工作量,同时提高了网页漏洞检测的效率。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
实施例2
根据本发明实施例,还提供了一种网页漏洞检测装置,如图7所示,该装置包括:
1)接收单元702,用于接收对待检测目标网页执行漏洞检测的漏洞检测任务,其中,漏洞检测任务至少用于指示所要检测的漏洞;
2)获取单元704,用于根据漏洞检测任务获取与漏洞对应的配置文件,其中,配置文件中包括用于从待检测网页中匹配出待检测目标网页的匹配条件与用于对待检测目标网页进行漏洞检测的测试用例的指示信息;
3)检测单元706,用于使用配置文件检测待检测目标网页是否存在配置文件所指示的漏洞。
可选地,在本实施例中,上述网页漏洞检测装置可以应用于如图2所示的控制服务器202和多个网站服务器204所构成的硬件环境中。如图2所示,网页漏洞检测装置可以但不限于位于控制服务器202中,其中,上述待检测目标网页为从待检测网页中筛选出的与上述配置文件相匹配的用于进行漏洞检测的网页。
可选地,针对不同的网页漏洞可以有不同的配置模板,根据相同或不同的配置模板为不同的漏洞检测任务生成不同的配置文件,其中,上述配置模板包括与上述配置文件中的匹配条件和测试用例对应的变量参数,不同的配置模板的变量参数不同,根据相同的配置模板生成的不同的配置文件中的变量参数的取值不同。进而实现利用配置模板对不同的网页漏洞进行漏洞检测,以达到提高网页漏洞的检测效率的目的。上述举例只是一种示例,本实施例对此不做任何限定。
可选地,在本实施例中,上述漏洞检测任务可以包括但不限于指示所要检测的漏洞、指示所要检测的待检测目标网页,其中用于指示上述待检测目标网页的信息可以至少包括上述待检测网页的类型、待检测目标网页的后缀。
可选地,在本实施例中,上述配置文件中还包括以下至少之一:配置文件的描述信息、配置文件的编号、配置文件所指示的漏洞的风险等级、配置条件、测试用例,其中,上述配置条件包括但不限于:预定类型、预定后缀,其中,上述预定类型用于匹配待检测网页的地址的类型,预定后缀用于匹配类型为预定类型的地址的后缀;上述测试用例的指示信息至少包括:测试用例的地址、测试用例的输入方式、测试用例所指示的漏洞的描述信息、测试用例所指示的正则表达式。
可选地,在本实施例中,上述匹配条件用于对上述待检测网页进行筛选,得到存在所要检测的漏洞的待检测目标网页,其中,上述匹配条件中的预定类型可以包括但不限于:用于匹配待检测网页的地址的类型,例如,上述类型可以为CGI、静态页面、目录。例如,CGI为用户对变量输入一定参数的网页,例如,a.php?user=bingo。上述匹配条件中的预定后缀可以但不限于用于匹配类型为预定类型的地址的后缀,例如,structs漏洞只检测.action或.do为后缀的CGI。上述匹配条件中的预定条件可以包括但不限于:用于匹配由类型为预定类型的地址进行拼接得到的地址信息。
具体结合以下示例,如图4所示为上述配置文件的一种示意图,其中,“rulename”表示配置文件的描述信息。一个配置文件可以由多个变量参数组成;“cveid”是该配置文件的唯一编号,以便于对上述配置文件管理;“level”表示每种漏洞的风险等级;配置条件中的“URL类型”、“URL后缀”为指示本实施例所要检测的漏洞的预定类型以及预定后缀,例如,上述配置文件所要检测的漏洞是structs漏洞,则上述“URL类型”将设置为CGI,“URL后缀”将设置为.action或.do,则在使用上述配置文件进行检测时,可以通过对上述配置文件所指示的指示信息进行匹配,进而判断待检测网页中是否存在上述配置文件所指示的漏洞。通过使用上述配置文件对待检测网页中的漏洞进行检测,检测上述待检测网页中是否存在图4所示的配置文件所指示的漏洞。
可选地,在本实施例中,上述测试用例用于对待检测目标网页中所存在的漏洞进行进一步检测。例如,上述测试用例的输入地址为参数A,输入方式为“替换”,则将依次遍历上述待检测目标网页的参数A,并将上述参数A的取值替换为测试用例取值itest,以实现对上述待检测目标网页进行漏洞检测。
可选地,在本实施例中,上述正则表达式的匹配方式包括但不限于:对上述待检测网页所反馈的测试结果进行匹配判断,其中,上述匹配可以对上述待检测网页返回的HTTP的头部head、主体body、全文hend|body中的至少一部分进行正则匹配。
进一步,具体结合图5来说明上述网页漏洞检测装置执行网页漏洞检测方法的过程:
S502,向网页漏洞检测装置输入待检测网页;
S504,通过上述网页漏洞检测装置中的判断模块判断上述待检测网页的预定类型Urltype是否匹配,若匹配,则执行步骤S506,若不匹配则结束此次检测;
S506,若匹配,则进一步由上述判断模块判断上述待检测目标网页的Suffix_method标签内容是匹配还是拼接,若为匹配,则执行步骤S508,若为拼接,则执行步骤S510;
S508,再通过上述网页漏洞检测装置中的检测模块查找上述待检测目标网页的后缀是否与上述预定后缀Suffix标签匹配;
S510,进一步将预定后缀Suffix标签拼接到待检测目标网页之后;
S512~S516,再由上述检测模块利用测试用例对上述待检测目标网页中的待检测漏洞进行检测;
S518,将检测到的上述漏洞上报。
进一步,上述步骤S512~S516的检测方式可以为:向上述待检测目标网页发送所要检测的漏洞的相应的测试用例,上述待检测目标网页针对上述测试用例做出响应,返回相应的测试结果,在将上述测试结果与正则表达式进行匹配后,若匹配,则表示上述待检测目标网页中存在上述测试用例所指示的漏洞。
可选地,在本实施例中,上述步骤S508中的匹配可以为对待检测网页的预定后缀进行查找匹配,以筛选出相应的待检测目标网页进行漏洞检测。上述步骤S510中的拼接可以为对特定的目标网页的地址进行拼接得到待检测目标网页,进而对上述待检测目标网页进行漏洞检测。
通过本发明提供的实施例,通过获取到的与漏洞检测任务相对应的配置文件,对接收到的待检测目标网页执行漏洞,其中,上述配置文件中包括用于从待检测网页中匹配出待检测目标网页的匹配条件与用于对待检测目标网页进行漏洞检测的测试用例的指示信息。利用配置文件对网页漏洞进行检测,避免了对不同的网页漏洞都需要重新开发一套检测算法所导致的漏洞检测效率低的问题,实现了提高漏洞检测效率的效果。
作为一种可选的方案,上述检测单元706包括:
1)判断模块,用于判断接收到的待检测网页是否满足匹配条件;
2)检测模块,用于在待检测网页满足匹配条件时,将待检测网页作为待检测目标网页,并使用配置文件中的指示信息所指示的测试用例检测待检测目标网页是否存在配置文件所指示的漏洞。
可选地,在本实施例中,上述匹配条件包括预定类型。预定后缀,其中,预定类型用于匹配待检测网页的地址的类型,预定后缀用于匹配类型为预定类型的地址的后缀。
可选地,在本实施例中,如图5所示的“匹配”可以为对待检测网页的特定后缀进行查找匹配,以筛选出相应的待检测目标网页进行漏洞检测。例如,选择匹配方式查找后缀为“.action”的网页,并利用测试用例对查找到的网页进行漏洞检测。如图5所示的“拼接”可以为对特定的目标网页的地址进行拼接得到待检测目标网页,进而对上述待检测目标网页进行漏洞检测,例如,特定的目标网页为www.baidu.com,拼接后缀为“.action”,则在选择拼接方式后,利用测试用例对上述拼接后的网页进行漏洞检测。
具体结合图5所示进行说明,假设上述配置文件用于检测structs漏洞,如步骤S502~S510所示,输入待检测网页,然后判断上述待检测网页是否与Urltype中的预定类型(例如,CGI)相匹配,若匹配,则进一步判断上述待检测网页是匹配预定后缀Suffix标签还是拼接预定后缀Suffix标签,以确定得出待检测目标网页,进而对筛选出的待检测目标网页进行漏洞检测。
进一步,使用上述配置文件中的测试用例检测上述待检测目标网页中是否存在相应的漏洞,上述检测的方式可以包括但不限于:向上述待检测目标网页发送测试用例,利用上述待检测目标网页反馈的测试结果与正则表达式进行匹配,以检测出上述待检测目标网页是否存在上述配置文件所指示的漏洞。
通过本发明提供的实施例,通过利用配置文件中的匹配条件,对待检测网页进行筛选,得到满足匹配条件的待检测目标网页,进而在上述待检测目标网页中进一步利用测试用例检测,在上述待检测目标网页中是否存在配置文件所指示的漏洞。
作为一种可选的方案,上述判断模块包括以下之一:
1)第一判断子模块,用于判断待检测网页的地址的类型是否为匹配条件中指示的预定类型,若待检测网页的地址的类型为预定类型,则判断出待检测网页满足匹配条件。或者
具体结合图5所示的步骤S504进行描述,Urltype是否匹配,若待检测目标网页的类型为预定类型Urltype(例如,CGI),则判断出上述待检测目标网页满足匹配条件;若待检测目标网页的类型不为预定类型,则检测出上述待检测网页中并不存在配置文件所指示的漏洞。
2)第二判断子模块,用于判断待检测网页的地址的类型是否为匹配条件中指示的预定类型,若待检测网页的地址的类型为预定类型,则判断类型为预定类型的地址的后缀是否为匹配条件中指示的预定后缀,若类型为预定类型的地址的后缀为预定后缀,则判断出待检测网页满足匹配条件。或者
具体结合图5所示的步骤S504进行描述,Urltype是否匹配,若待检测目标网页的类型为预定类型Urltype(例如,CGI),则执行步骤S506~S508,判断类型为预定类型(例如,CGI)的待检测目标网页的地址的后缀是否为匹配条件中指示的预定后缀Suffix标签(例如,后缀为“.php”),若类型为预定类型的地址的后缀为预定后缀(例如,后缀为“.php”),则判断出待检测网页满足匹配条件。
3)第三判断子模块,用于判断待检测网页的地址的类型是否为匹配条件中指示的预定类型,若待检测网页的地址的类型为预定类型,则判断出待检测网页满足匹配条件,并对待检测网页的地址进行拼接,得到待检测目标网页。
具体结合图5所示的步骤S504进行描述Urltype是否匹配,若待检测目标网页的类型为预定类型Urltype(例如,CGI),则执行图5所示的步骤S506~S510,判断出待检测网页满足匹配条件,并对上述待检测网页的地址进行拼接,拼接预定后缀Suffix标签,得到待检测目标网页,以实现对上述待检测目标网页进行漏洞检测。
通过本发明提供的实施例,通过对匹配条件中的预定类型、预定后缀以及预定条件进行匹配判断,以得到与上述匹配条件相对应的待检测目标网页,进而对上述筛选出的待检测目标网页进行漏洞检测。
作为一种可选的方案,上述检测模块包括:
1)发送子模块,用于向待检测目标网页发送配置文件中的指示信息所指示的测试用例;
2)接收子模块,用于接收待检测目标网页响应于测试用例反馈的测试结果;
3)第四判断子模块,用于判断测试结果是否满足配置文件中的指示信息所指示的正则表达式;
4)检测子模块,用于在判断出测试结果满足正则表达式时,检测出待检测目标网页存在配置文件所指示的漏洞。
具体结合图5中所示S512~S516进行说明,上述配置文件中的测试用例(例如,用itest标识)所指示的指示信息为:测试用例的地址为参数A,输入方式为“替换”。测试用例在对上述待检测目标网页进行检测时,将通过依次遍历待检测目标网页的参数A,将参数A的取值替换为itest,发送上述待检测目标网页链接请求,并获取上述待检测网页所反馈的内容。
进一步,利用正则表达式中内容与上述待检测网页所反馈的内容进行正则匹配,判断上述待检测目标网页中是否存在配置文件所指示的漏洞。
通过本发明提供的实施例,通过利用测试用例对待检测目标网页进行进一步的漏洞检测,进而检测出配置文件所指示的漏洞,实现了利用配置文件中的测试用例对待检测目标网页进行漏洞检测,避免了多次开发算法,只需在配置文件中配置不同的测试用例,即可实现针对不同的网页漏洞进行的漏洞检测。
作为一种可选的方案,如图8所示,上述装置还包括:
1)生成单元802,用于在接收对待检测目标网页执行漏洞检测的漏洞检测任务之前,根据相同或不同的配置模板为不同的测试任务生成不同的配置文件,其中,配置模板包括与配置文件中的匹配条件和测试用例对应的变量参数,不同的配置模板的变量参数不同,根据相同的配置模板生成的不同的配置文件中的变量参数的取值不同。
通过本发明提供的实施例,通过利用配置模板对所要检测的漏洞的通用特征进行配置以得到相应的配置文件,其中,通过设置不同的变量参数以得到不同的配置文件,或为同一配置文件中的变量参数赋不同的取值,使得在无需多次开发检测算法的基础上,通过不同的配置文件检测出不同的网页漏洞,不仅减少了漏洞检测的工作量,同时提高了网页漏洞检测的效率。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
实施例3
根据本发明实施例,还提供了一种用于实施上述网页漏洞检测方法的控制服务器202,如图9所示,上述控制服务器202包括:
1)存储器902,被设置为存储上述网页漏洞检测装置中的配置模板、配置文件以及用于存储上述测试用例的测试用例库;
可选地,在本实施例中,上述存储器902中存储的内容也可以从除控制服务器202之外的其他服务器获取,本实施例对此不做任何限定。
可选地,在本实施例中,上述存储器902还可以用于存储上述实施例1中的检测过程中所存储的其他数据。
2)处理器904,被设置为对上述网页漏洞检测装置中的各个模块执行以下操作;
S1,接收对待检测目标网页执行漏洞检测的漏洞检测任务,其中,漏洞检测任务至少用于指示所要检测的漏洞;
S2,根据漏洞检测任务获取与漏洞对应的配置文件,其中,配置文件中包括用于从待检测网页中匹配出待检测目标网页的匹配条件与用于对待检测目标网页进行漏洞检测的测试用例的指示信息;
S3,使用配置文件检测待检测目标网页是否存在配置文件所指示的漏洞。
可选地,在本实施例中,上述处理器904还可以执行上述实施例1中的其他检测步骤,在此不再赘述。
3)通讯接口906,被设置为与上述网站服务器204进行数据交互。
可选地,在本实施例中,上述控制服务器202可以应用于如图2所示的控制服务器202和多个网站服务器204所构成的硬件环境中。如图2所示,控制服务器202利用配置文件对待检测目标网页所在的任意一个网站服务器204进行漏洞检测,其中,上述待检测目标网页为从待检测网页中筛选出的与上述配置文件相匹配的用于进行漏洞检测的网页。
可选地,本实施例中的具体示例可以参考上述实施例1和实施例2中所描述的示例,本实施例在此不再赘述。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
实施例4
本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以应用于网页漏洞检测方法。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:
S1,接收对待检测目标网页执行漏洞检测的漏洞检测任务,其中,漏洞检测任务至少用于指示所要检测的漏洞;
S2,根据漏洞检测任务获取与漏洞对应的配置文件,其中,配置文件中包括用于从待检测网页中匹配出待检测目标网页的匹配条件与用于对待检测目标网页进行漏洞检测的测试用例的指示信息;
S3,使用配置文件检测待检测目标网页是否存在配置文件所指示的漏洞。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:
S1,在接收对待检测目标网页执行漏洞检测的漏洞检测任务之前,根据相同或不同的配置模板为不同的漏洞检测任务生成不同的配置文件,其中,配置模板包括与配置文件中的匹配条件和测试用例对应的变量参数,不同的配置模板的变量参数不同,根据相同的配置模板生成的不同的配置文件中的变量参数的取值不同。
可选地,在本实施例中,上述存储介质可以应用于如图2所示的控制服务器202和多个网站服务器204所构成的硬件环境中。可选地,上述存储介质可以但不限于位于控制服务器202中。
可选地,上述配置文件中还包括以下至少之一:配置文件的描述信息、配置文件的编号、配置文件所指示的漏洞的风险等级、预定类型、预定后缀,其中,预定类型用于匹配待检测网页的地址的类型,预定后缀用于匹配类型为预定类型的地址的后缀;测试用例的指示信息至少包括:测试用例的地址、测试用例的输入方式、测试用例所指示的漏洞的描述信息、测试用例所指示的正则表达式。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
可选地,本实施例中的具体示例可以参考上述实施例1和实施例2中所描述的示例,本实施例在此不再赘述。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。