一种网站的漏洞测试方法、服务器及系统与流程

文档序号:15683498发布日期:2018-10-16 20:49阅读:138来源:国知局

本发明涉及网站安全技术领域,具体涉及一种网站的漏洞测试方法、服务器及系统。



背景技术:

随着网站技术的发展,网站安全问题日益突出,尤其是网站的漏洞很容易被攻击者利用,从而影响网站的安全,因此测试网站漏洞,及时发现网站所存在的漏洞显得尤为必要。

目前网站漏洞的测试方式主要是采用主动式的扫描方式,如通过网络爬虫抓取网站的url,根据所抓取的url对网站进行漏洞测试;这种通过网络爬虫抓取网站的url,来实现网站漏洞测试的方式所存在的问题是:网络爬虫对网站进行爬取,会对网站造成很大的流量压力;因此如何提供一种网站负担较轻的网站漏洞测试方法,成为了本领域技术人员需要考虑的问题。



技术实现要素:

有鉴于此,本发明实施例提供一种网站的漏洞测试方法、服务器及系统,以实现网站负担较轻的网站漏洞测试。

为实现上述目的,本发明实施例提供如下技术方案:

一种网站的漏洞测试方法,包括:

获取客户端发送给网站服务器的访问请求,并将所获取的访问请求中转给所述网站服务器;所述访问请求包括:所述网站服务器对应的至少一个统一资源定位符url链接;

记录所获取的各访问请求;

若检测到网站漏洞测试指令,调取记录的访问请求,从所调取的访问请求对应的url链接中确定至少一个待测url链接;

将各待测url链接修改为具有漏洞测试语句的测试url链接,得到各待测url链接对应的测试url链接;

根据各测试url链接,确定各待测url链接的网站漏洞测试结果。

本发明实施例还提供一种服务器,包括:

访问代理模块,用于获取客户端发送给网站服务器的访问请求,并将所获取的访问请求中转给所述网站服务器;所述访问请求包括:所述网站服务器对应的统一资源定位符url链接;

记录模块,用于记录所获取的各访问请求;

待测链接确定模块,用于若检测到网站漏洞测试指令,调取记录的访问请求,从所调取的访问请求对应的url链接中确定至少一个待测url链接;

测试链接确定模块,用于将各待测url链接修改为具有漏洞测试语句的测试url链接,得到各待测url链接对应的测试url链接;

漏洞测试结果确定模块,用于根据各测试url链接,确定各测试url链接对应的待测url链接的网站漏洞测试结果。

本发明实施例还提供一种网站的漏洞测试系统,包括:

代理服务器,用于获取客户端发送给网站服务器的访问请求,并将所获取的访问请求中转给所述网站服务器;所述访问请求包括:所述网站服务器对应的统一资源定位符url链接;

数据库,用于记录所述代理服务器所获取的各访问请求;

漏洞测试服务器,用于若检测到网站漏洞测试指令,从所述数据库中调取记录的访问请求,从所调取的访问请求对应的url链接中确定至少一个待测url链接;将各待测url链接修改为具有漏洞测试语句的测试url链接,得到各待测url链接对应的测试url链接;根据各测试url链接,确定各测试url链接对应的待测url链接的网站漏洞测试结果。

基于上述技术方案,本发明实施例可通过访问代理形式将客户端发送的访问请求中转给网站服务器,从而对访问代理过程中获取的访问请求进行记录,以在需要进行网站漏洞测试时,可从记录的访问请求所包含的url链接中确定待测漏洞的待测url链接,并将各待测url链接修改为具有漏洞测试语句的测试url链接,进而根据各测试url链接来测试网站漏洞的可被利用情况,以各测试url链接的测试结果,来相应的确定出各待测url链接的网站漏洞测试结果,实现网站的漏洞测试。

由于本发明实施例是通过访问代理过程中获取的客户端发送至网站服务器的访问请求,实现网站的漏洞测试,因此可在客户端对网站的正常访问过程中,获取到测试网站漏洞所使用的url链接,网站只需要应对正常的访问,网站的流量负担较轻。可见,本发明实施例提供的网站的漏洞测试方法,可实现网站负担较轻的网站漏洞测试。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本发明实施例提供的实现网站的漏洞测试方法的系统架构示意图;

图2为本发明实施例提供的网站的漏洞测试方法的信令流程图;

图3为本发明实施例提供的网站的漏洞测试方法的另一信令流程图;

图4为本发明实施例提供的网站的漏洞测试方法的再一信令流程图;

图5为本发明实施例提供的场景方法流程图;

图6为本发明实施例提供的网站的漏洞测试系统的硬件构件示意图;

图7为本发明实施例提供的网站的漏洞测试方法的方法流程图;

图8为本发明实施例提供的服务器的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

图1为本发明实施例提供的实现网站的漏洞测试方法的系统架构示意图,参照图1,该系统架构可以包括:客户端10、代理服务器20、数据库30和漏洞测试服务器40;

其中,客户端10可以装载在智能手机、平板电脑和笔记本电脑等移动终端上,在本发明实施例中,客户端10具有网络页面浏览功能;如客户端10可以为网页浏览器,又如客户端10中可以嵌入具有页面浏览功能的组件等;

代理服务器20、漏洞测试服务器40可以是设置于网络侧的服务设备;

其中,代理服务器20为提供网络代理服务的电脑系统或者其他类型的网络终端,网络代理具体指允许一个网络终端,一般为客户端,通过这个服务与另一个网络终端,一般为服务器,进行非直接的连接,一些网关和路由器等网络设备具备网络代理功能;

数据库30是按照数据结构来组织、存储和管理数据的仓库,建立于计算机存储设备上;

漏洞测试服务器40为输出本发明实施例所需要的网站漏洞测试结果的服务设备,漏洞测试服务器40可以由单台服务器实现,也可以由多台服务器组成的服务器群组实现。

基于上述系统架构,下面对本发明实施例提供的一种网站的漏洞测试方法的信令流程进行介绍,一种可选的信令流程图可如图2所示。

在执行图2所示信令流程图中的步骤s101之前,首先需要配置网络环境,即设置所有从客户端到网站服务器的流量都经过代理服务器;然后为代理服务器设置用于通信的代理协议,其中,代理协议可以为http协议或者https协议,具体协议类型可根据实际需要进行选择;最后为代理服务器设置浏览器或网关代理。

进一步的,为保证代理服务器的代理安全,在对代理服务器设置代理协议成功后,还可对客户端提供一个需要basic认证的代理地址,具体的认证方式可以采用密码鉴定和/或ip白名单;

需要说明的是,basic认证一种常用的认证方式,常用于无状态客户端的验证,比如httpinvoker(http调用器)或者webservice(web平台)的认证,这种场景的特点是客户端每次访问应用时,都在请求头部携带认证信息,一般就是用户名和密码,因为basic认证会传递明文,所以最好使用https传输数据。

回到图2,图2所示信令流程可以包括如下步骤:

s101,代理服务器获取客户端发送给网站服务器的访问请求,并将所获取的访问请求中转给所述网站服务器;所述访问请求包括:网站服务器对应的至少一个统一资源定位符url链接;

在执行步骤s101的过程中,访问请求可以是网站上线之前,客户端向网站服务器发送的用于单元测试、回归测试以及功能测试时的测试访问请求,也可以是客户端向网站服务器发送的用于观看视频、玩游戏等日常访问请求。

s102,代理服务器将各访问请求记录到数据库中;

s103,漏洞测试服务器若检测到网站漏洞测试指令,从数据库中调取记录的访问请求;

在执行步骤s103的过程中,网站漏洞测试指令的生成方式可以为人为输出,也可以是当前系统时间到达测试周期时,系统自动生成的;

可选的,当漏洞测试服务器初次访问数据库时,调取数据库全部访问请求,并从所调取的全部的访问请求对应的url链接中确定至少一个待测url链接;

可选的,也可对已调取的进行网站漏洞测试的访问请求进行标记,当漏洞测试服务器再次访问数据库时,可从数据库中调取未被标记的访问请求,这就进一步保证了漏洞测试的全面性以及免去已处理访问请求的再次调取处理,提升处理效率。

s104,漏洞测试服务器对所调取的访问请求对应的url链接进行去重处理;

在执行步骤s104的过程中,针对所调取的每一个url链接,可根据相似度计算方法分别计算与其他url链接的相关度,并保留相关度低于阈值的其他各个url链接,例如,对于url链接“201702171234.html?id=2”,与url链接“201702171234.html?id=1”由于相关度很高,因此测试其中一个url链接即可;

需要说明的是,相似度计算用于衡量对象之间的相似程度,在数据挖掘以及自然语言处理中是一个基础性计算,主要包括特征表示和特征集合之间的相似性计算,而针对不同的应用场景,受限于数据规模和时空开销等的限制,可从余弦相似度计算方法、皮尔森系数计算方法和调整余弦相似度计算方法中具体选择。

s105,漏洞测试服务器调取已测试url链接表格,所述已测试url链接表格记录有已进行网站漏洞测试的url链接;

s106,漏洞测试服务器根据已测试url链接表格,从去重处理后的url链接中,去除已进行网站漏洞测试的url链接,得到候选url链接;

s107,漏洞测试服务器分析候选url链接中具有可控参数的url链接,并将具有可控参数的url链接归类聚合;

s108,漏洞测试服务器将归类聚合的具有可控参数的url链接确定为至少一个待测url链接;

s109,对于一待测url链接,漏洞测试服务器将该待测url链接的参数进行拆分,得到各拆分参数;

s110,漏洞测试服务器从各拆分参数中确定参数值可控的至少一个目标参数,将各目标参数的参数值替换为可利用网站漏洞的有效载荷;

在执行步骤s110的过程中,经发明人分析可确定,参数值可控的目标参数一般为id和user,例如,一个httpget请求:“http://www.xxx.com?id=1&user=test”可控的参数指的是“id”和“user”,参数值为参数等号后面的值,其中,参数“id”对应的参数值为“1”和参数“user”对应的参数值为“test”;当确定参数“id”为目标参数后,将目标参数的参数值替换为可利用网站漏洞的有效载荷,例如,将目标参数“id”对应的参数值“1”替换为“2”。

s111,漏洞测试服务器根据参数值替换为有效载荷的目标参数,生成该待测url链接对应的测试url链接;

在执行步骤s111中生成测试url链接的过程中,如果拆分后的各个参数均被确定为目标参数,并且对应的参数值均被替换,则将替换后的有效载荷逐一进行拼接;如果拆分后的各个参数中部分被确定为目标参数,并且,目标参数的参数值被替换,则将替换后的有效载荷以及剩余的未被替换的拆分后的参数逐一拼接。

s112,漏洞测试服务器将各测试url链接对应的测试请求发送至网站服务器,以获取到各测试请求对应的反馈结果;

在执行步骤s112的过程中,漏洞测试服务器可将测试url链接发送至网络服务器,以得到网络服务器反馈的各测试url链接对应的反馈结果。

s113,对于一待测url链接,漏洞测试服务器根据对应测试url链接的测试请求的反馈结果,及该待测url链接的反馈结果,确定该待测url链接的网站漏洞测试结果;

在执行步骤s113的过程中,对于一待测url链接,漏洞测试服务器对比该待测url链接的反馈结果以及对应测试url链接的测试请求的反馈结果,即可对比结果确定该待测url链接的网站漏洞测试结果;具体的,如果两个反馈结果一致,则说明该待测url链接无漏洞;如果两个反馈结果不一致,则说明该待测url链接有漏洞。

以上步骤s105~步骤s106仅仅是本申请实施例公开的“漏洞测试服务器根据去重后的url链接,确定候选url链接”过程的一种优选的实现方式,有关此过程的具体实现方式发明人可根据自己的需求任意设置,在此不做限定。并且,当漏洞测试服务器初次访问数据库时,直接将去重后的url链接确定为候选url链接;当漏洞测试服务器不是初次访问数据库时,调取预先生成的记录有已进行网站漏洞测试的url链接的已测试url链接表格,并根据已测试url链接表格从去重处理后的url链接中,去除已进行网站漏洞测试的url链接,得到所述候选url链接。

以上步骤s107~步骤s108仅仅是本申请实施例公开的“漏洞测试服务器对候选url链接进行分类聚合,从分类聚合结果中确定所述至少一个待测url链接”过程的一种优选的实现方式,有关此过程的具体实现方式发明人可根据自己的需求任意设置,在此不做限定。并且,在漏洞测试服务器分类聚合过程中,首先对候选url链接按照是否存在参数进行分类,进一步,对存在参数的各个候选url链接判断其中的参数是否为可控参数,例如,参数“id”和“user”,从而确定至少一个存在可控参数的待测url链接。

以上步骤s104~步骤s108仅仅是本申请实施例公开的“漏洞测试服务器从所调取的访问请求对应的url链接中确定至少一个待测url链接”过程的一种优选的实现方式,有关此过程的具体实现方式发明人可根据自己的需求任意设置,在此不做限定。

以上步骤s109~步骤s111仅仅是本申请实施例公开的“漏洞测试服务器将各待测url链接修改为具有漏洞测试语句的测试url链接”过程的一种优选的实现方式,有关此过程的具体实现方式还可为直接对待测url链接的可控参数区进行参数值替换,发明人可根据自己的需求任意设置,在此不做限定。

以上步骤s112~步骤s113仅仅是本申请实施例公开的“根据各测试url链接,确定各测试url链接对应的待测url链接的网站漏洞测试结果”过程的一种优选的实现方式,有关此过程的具体实现方式还可为直接对待测url链接的可控参数区进行参数值替换,发明人可根据自己的需求任意设置,在此不做限定。

需要说明的是,由于代理服务器将所获取的各访问请求记录至数据库中,因此数据库可使用开源数据库mysql,具体的,开源数据库mysql可以日志记录形式存储访问请求,并且日志记录包含统一资源定位符url链接http包头,例如,参数或cookie;

开源数据库mysql是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性;并且开源数据库mysql所使用的sql语言是用于访问数据库的最常用标准化语言。开源数据库mysql软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择开源数据库mysql作为网站数据库。

在本发明实施例中,漏洞测试服务器对抓取的待测url链接进行漏洞测试,本发明的发明人发现,当漏洞测试服务器以网络爬虫的方法抓取待测url链接的过程中,会对网站造成很大的流量压力,并且无法爬取到网站中隐藏较深的链接,导致网站漏洞测试结果的全面性较低,经过发明人分析发现,具体原因可能是:

网络爬虫技术始于一张被称作种子的统一资源地址(urls)列表,网络爬虫访问统一资源地址列表中的某一个统一资源定位符url链接开始,读取该url链接对应网页的内容,并将查找到的网页上包含的其他url链接写入一张待访问列表,即所谓“爬行疆域”(crawlfrontier),进而,按照预设策略循环访问该列表中全部的url链接。

网络爬虫在访问每个url链接的过程中需要复制归档并保存为相应的“网页快照”,保存格式包括html、图片、doc、pdf、多媒体、动态网页及其它格式,由于每个url链接对应的网页内容是不断变化的,因此网络爬虫也需要不断更新抓取的所有“网页快照”,但是短时间内抓取大量数据会给网站造成很大压力;

同时,由于网络爬虫并不具备强大的操作交互能力和业务理解能力,因此只能在页面结构相对简单的网站抓取,对于具有复杂身份认证、具有挡板策略、具有复杂操作逻辑或者具有孤岛页面的网站,网络爬虫需要人工辅助进行收集url链接,即网络爬虫一般无法爬取到网站中隐藏较深的链接,导致网站漏洞检测结果的全面性较低。

基于此,本发明实施例通过访问代理过程中获取的客户端发送至网站服务器的访问请求,实现网站的漏洞测试,因此可在客户端对网站的正常访问过程中,获取到测试网站漏洞所使用的url链接,网站只需要应对正常的访问,网站的流量负担较轻。

进一步,对网站的访问请求所涉及的url链接所覆盖的网站页面链接更为全面,发现隐藏较深的url链接的概率较高,可使得测试网站漏洞所使用的url链接能够较为全面的覆盖网站的大部分页面,提升最终网站的漏洞测试结果的全面性。可见,本发明实施例提供的网站的漏洞测试方法,可实现网站负担较轻,且测试结果的全面性较高的网站漏洞测试。

结合图2所示出的网站的漏洞测试方法,本发明实施例提供另一种网站的漏洞测试方法,在步骤s113之后,还可包括如下步骤s114,信令流程图如图3所示:

s114,漏洞测试服务器根据各待测url链接的网站漏洞测试结果,输出各待测url链接的测试输出结果,以便对各待测url链接的网站漏洞测试结果进行验证;

其中,对于一待测url链接的测试输出结果包括该待测url链接,该待测url链接对应的访问请求,该待测url链接对应的测试url链接,该测试url链接的参数,该测试url链接对应的访问请求,以及该测试url链接所对应的网站服务器的反馈结果中的至少一个。

本发明实施例公开的网站的漏洞测试方法中,步骤s101~s113的具体执行过程与上述实施例中步骤s101~s113所公开的一致,在此不再赘述,请参见上述实施例公开的部分。

可见,本发明实施例提供的网站的漏洞测试方法,可实现网站负担较轻,且测试结果的全面性较高的网站漏洞测试,并且通过输出网站漏洞测试结果实现对各待测url链接的网站漏洞测试结果进行验证。

结合图2所示出的网站的漏洞测试方法,本发明实施例提供另一种网站的漏洞测试方法,在步骤s102与步骤s103之间,还可包括如下步骤s115,信令流程图如图4所示:

s115,代理服务器对所记录的访问请求按照访问请求获取的时间区间进行区分,得到各时间区间对应的任务名称表;其中,所述任务名称表记录有对应的时间区间所记录的访问请求,一个时间区间对应一个测试周期;

在执行步骤s115执行过程中,对于部分更新周期短的网站,例如,新闻网站,需要对该网站的网页进行周期性扫描,代理服务器按照访问请求的获取的时间区间对访问请求进行区分,例如,系统时间4点到6点为一个扫描测试周期,则将该扫描测试周期内获取的全部访问请求进行区分,并记录于该扫描测试周期对应的任务名称表中。

相应的,步骤s103中“检测到网站漏洞测试指令”包括:在当前时间达到当前测试周期的起始时间时,生成网站漏洞测试指令;步骤s103中“调取记录的访问请求”包括:确定当前测试周期对应的时间区间的任务名称表,根据所确定的任务名称表所记录的访问请求,确定所调取的访问请求;

并且在执行“确定当前测试周期对应的时间区间的任务名称表,根据所确定的任务名称表所记录的访问请求,确定所调取的访问请求”这一过程中,优选的,对于各个任务名称表所记录的访问请求,若为初次调取,则直接调取,并对调取的访问请求进行标记;若不为初次调取,则删除表中已经被标记的测试过的访问请求。

本发明实施例公开的网站的漏洞测试方法中,步骤s101~s113的具体执行过程与上述实施例中步骤s101~s113所公开的一致,在此不再赘述,请参见上述实施例公开的部分。

可见,本发明实施例提供的网站的漏洞测试方法,可实现网站负担较轻,且测试结果的全面性较高的网站漏洞测试,并且代理服务器通过对访问请求按照获取的时间区间进行区分,增强了漏洞检测的针对性。

为了本领域的技术人员清楚明白的了解本发明中的内容,现提供一个场景实施例进行解释说明,该场景实施例的方法流程图如图5所示。

用户a使用新浪客户端浏览一个财经新闻页面时,点击新浪客户端上的财经新闻的超链接;新浪客户端接收到财经新闻访问地址,根据访问地址生成相应的财经新闻访问请求,并将生成的财经新闻访问请求发送至新浪网站服务器,以使新浪网站服务器向新浪客户端反馈财经新闻页面内容;

在新浪网站服务器向新浪客户端反馈财经新闻页面内容之后,新浪网站的漏洞测试系统对该网站进行漏洞检测的过程,方法流程图如图5所示,包括如下步骤:

s201,代理服务器获取新浪客户端发送给新浪网站服务器的财经新闻访问请求,再将该财经新闻访问请求中转给新浪网站服务器;其中,所述财经新闻访问请求中包含至财经新闻页面对应的至少一个统一资源定位符url链接;

s202,代理服务器记录代理服务器获取财经新闻访问请求;

s203,漏洞测试服务器若检测到网站漏洞测试指令,调取记录的财经新闻访问请求,从所调取的财经新闻访问请求对应的url链接中确定至少一个待测url链接;

s204,漏洞测试服务器对于一待测url链接,将该待测url链接的参数进行拆分,得到各拆分参数;

s205,漏洞测试服务器从各拆分参数中确定参数值可控的至少一个目标参数,将各目标参数的参数值替换为可利用网站漏洞的有效载荷;

s206,漏洞测试服务器根据参数值替换为有效载荷的目标参数,生成该待测url链接对应的测试url链接;

s207,漏洞测试服务器根据各测试url链接,确定各待测url链接对应的财经新闻页面内容;

本场景实施例中,对于一待测url链接,漏洞测试服务器对比对应测试url链接的测试请求对应的财经新闻页面内容以及该待测url链接的对应的财经新闻页面内容,并根据对比结果确定该待测url链接的网站漏洞测试结果;具体的,如果两个财经新闻页面内容一致,则说明该待测url链接无漏洞;如果两个财经新闻页面内容不一致,则说明该待测url链接有漏洞。

此时,还可以生成提示信息发送至提示装置,该提示装置可以为提示灯,提示灯闪烁、点亮或变换显示颜色都可以对用户a进行提示。

结合图1所示出的系统架构,本发明实施例提供了一种网站的漏洞测试系统,包括:代理服务器20、数据库30和漏洞测试服务器40;

代理服务器20,用于获取客户端发送给网站服务器的访问请求,并将所获取的访问请求中转给所述网站服务器;所述访问请求包括:网站服务器对应的统一资源定位符url链接;

数据库30,用于记录代理服务器所获取的各访问请求;

漏洞测试服务器40,用于若检测到网站漏洞测试指令,从数据库中调取记录的访问请求,从所调取的访问请求对应的url链接中确定至少一个待测url链接;将各待测url链接修改为具有漏洞测试语句的测试url链接,得到各待测url链接对应的测试url链接;根据各测试url链接,确定各测试url链接对应的待测url链接的网站漏洞测试结果。

本发明实施例通过访问代理过程中获取的客户端发送至网站服务器的访问请求,实现网站的漏洞测试,因此可在客户端对网站的正常访问过程中,获取到测试网站漏洞所使用的url链接,网站只需要应对正常的访问,网站的流量负担较轻。

进一步,对网站的访问请求所涉及的url链接所覆盖的网站页面链接更为全面,发现隐藏较深的url链接的概率较高,可使得测试网站漏洞所使用的url链接能够较为全面的覆盖网站的大部分页面,提升最终网站的漏洞测试结果的全面性。可见,本发明实施例提供的网站的漏洞测试系统,可实现网站负担较轻,且测试结果的全面性较高的网站漏洞测试。

可选的,图6进一步示出了本发明实施例提供的网站的漏洞测试系统的硬件构件示意图,如图6所示,代理服务器20可以包括:至少一个处理器1,至少一个通信接口2,至少一个存储器3和至少一个通信总线4;在本发明实施例中,处理器1、通信接口2、存储器3、通信总线4的数量可以为至少一个,且通信形式并不限于图6所示,图6所示仅为代理服务器20的一种可选硬件构件实现形式;

在本发明实施例中,处理器1、通信接口2、存储器3通过通信总线4完成相互间的通信;

可选的,通信接口2可以为通信模块的接口,如gsm模块的接口;

处理器1可能是一个中央处理器cpu,或者是特定集成电路asic(applicationspecificintegratedcircuit),或者是被配置成实施本发明实施例的一个或多个集成电路。

存储器3可能包含高速ram存储器,也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。

其中,代理服务器20中的处理器1具体可用于:

获取客户端发送给网站服务器的访问请求,并将所获取的访问请求中转给所述网站服务器,且将所获取的各访问请求记录到数据库30中;所述访问请求包括:网站服务器对应的统一资源定位符url链接。

如图6所示,漏洞测试服务器40可以包括:至少一个处理器1’,至少一个通信接口2’,至少一个存储器3’和至少一个通信总线4’;在本发明实施例中,处理器1’、通信接口2’、存储器3’、通信总线4’的数量可以为至少一个,且通信形式并不限于图6所示,图6所示仅为漏洞测试服务器的一种可选硬件构件实现形式;

处理器1’、通信接口2’、存储器3’和通信总线4’之间的关联可参照上文描述。

在本发明实施例中,漏洞测试服务器40中的处理器1’具体可用于:

若检测到网站漏洞测试指令,从数据库中调取记录的访问请求,从所调取的访问请求对应的url链接中确定至少一个待测url链接;将各待测url链接修改为具有漏洞测试语句的测试url链接,得到各待测url链接对应的测试url链接;根据各测试url链接,确定各测试url链接对应的待测url链接的网站漏洞测试结果。

上述实施例是将网站的漏洞测试分属于不同的服务器实现的,但是在实际应用过程中,还可以进程形式装载于同一个服务器中;该服务器可在实现网站的漏洞测试时,主要执行如下流程,方法流程图如图7所示:

s301,获取客户端发送给网站服务器的访问请求,并将所获取的访问请求中转给所述网站服务器;所述访问请求包括:网站服务器对应的至少一个统一资源定位符url链接;

s302,记录所获取的各访问请求;

s303,若检测到网站漏洞测试指令,调取记录的访问请求,从所调取的访问请求对应的url链接中确定至少一个待测url链接;

s304,将各待测url链接修改为具有漏洞测试语句的测试url链接,得到各待测url链接对应的测试url链接;

s305,根据各测试url链接,确定各待测url链接的网站漏洞测试结果。

其中,服务器的其他功能实现可参照上文相应部分描述。

可选的,本发明实施例提供了一种服务器,其结构示意图如图8所示,包括:访问代理模块101、记录模块102、待测链接确定模块103、测试链接确定模块104和漏洞测试结果确定模块105;

访问代理模块101,用于获取客户端发送给网站服务器的访问请求,并将所获取的访问请求中转给所述网站服务器;所述访问请求包括:网站服务器对应的统一资源定位符url链接;

记录模块102,用于记录所获取的各访问请求;

待测链接确定模块103,用于若检测到网站漏洞测试指令,调取记录的访问请求,从所调取的访问请求对应的url链接中确定至少一个待测url链接;

测试链接确定模块104,用于将各待测url链接修改为具有漏洞测试语句的测试url链接,得到各待测url链接对应的测试url链接;

漏洞测试结果确定模块105,用于根据各测试url链接,确定各测试url链接对应的待测url链接的网站漏洞测试结果。

优选的,待测链接确定模块103,用于从所调取的访问请求对应的url链接中确定至少一个待测url链接,具体包括:

对所调取的访问请求对应的url链接进行去重处理;

根据去重处理后的url链接,确定候选url链接;

对候选url链接进行分类聚合,从分类聚合结果中确定至少一个待测url链接。

优选的,待测链接确定模块103,用于对候选url链接进行分类聚合,具体包括:

分析候选url链接中具有可控参数的url链接,并将具有可控参数的url链接归类聚合;

待测链接确定模块103,用于从分类聚合结果中确定至少一个待测url链接,具体包括:

将归类聚合的具有可控参数的url链接确定为至少一个待测url链接。

上述任意一项所述的服务器,优选的,测试链接确定模块104,用于将各待测url链接修改为具有漏洞测试语句的测试url链接,具体包括:

对于一待测url链接,将该待测url链接的参数进行拆分,得到各拆分参数;

从各拆分参数中确定参数值可控的至少一个目标参数,将各目标参数的参数值替换为可利用网站漏洞的有效载荷;

根据参数值替换为有效载荷的目标参数,生成该待测url链接对应的测试url链接。

优选的,漏洞测试结果确定模块105,用于根据各测试url链接,确定各测试url链接对应的待测url链接的网站漏洞测试结果,具体包括:

将各测试url链接对应的测试请求发送至网站服务器,以获取到各测试请求对应的反馈结果;

对于一待测url链接,根据对应测试url链接的测试请求的反馈结果,及该待测url链接的反馈结果,确定该待测url链接的网站漏洞测试结果。

相应的,图8所示功能模块架构可设置于服务器中,通过该服务器可实现本发明实施例所提供的网站的漏洞测试功能,该服务器的硬件结构可以包括:至少一个处理器,至少一个通信接口,至少一个存储器和至少一个通信总线;

处理器、通信接口、存储器和通信总线之间的关联可参照上文描述。

其中,服务器中的处理器可具体用于:

获取客户端发送给网站服务器的访问请求,并将所获取的访问请求中转给所述网站服务器;所述访问请求包括:所述网站服务器对应的至少一个统一资源定位符url链接;

记录所获取的各访问请求;

若检测到网站漏洞测试指令,调取记录的访问请求,从所调取的访问请求对应的url链接中确定至少一个待测url链接;

将各待测url链接修改为具有漏洞测试语句的测试url链接,得到各待测url链接对应的测试url链接;

根据各测试url链接,确定各待测url链接的网站漏洞测试结果。

本发明实施例通过访问代理过程中获取的客户端发送至网站服务器的访问请求,实现网站的漏洞测试,因此可在客户端对网站的正常访问过程中,获取到测试网站漏洞所使用的url链接,网站只需要应对正常的访问,网站的流量负担较轻。

进一步,对网站的访问请求所涉及的url链接所覆盖的网站页面链接更为全面,发现隐藏较深的url链接的概率较高,可使得测试网站漏洞所使用的url链接能够较为全面的覆盖网站的大部分页面,提升最终网站的漏洞测试结果的全面性。可见,本发明实施例提供的服务器,可实现网站负担较轻,且测试结果的全面性较高的网站漏洞测试。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

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