发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的一种网站漏洞在线验证方法及装置。
依据本发明的一个方面,提供了一种网站漏洞在线验证方法,包括:
获取网站的漏洞网址,构造漏洞检测网址;
加载所述漏洞检测网址以获取响应信息;
提取并显示所述响应信息以验证所述网站漏洞。
可选的,所述获取网站的漏洞网址,包括:
对所述网站进行漏洞扫描,获取所述网站存在漏洞的网址。
所述构造漏洞检测网址,包括:
根据所述网站漏洞的类型构造所述漏洞检测网址。
可选的,所述根据网站漏洞的类型构造所述漏洞检测网址,包括:
若所述漏洞为信息泄露类漏洞,则根据存在漏洞的网站的网址以及所述漏洞对应的漏洞测试串,构造所述漏洞检测网址,所述漏洞测试串为用于检测漏洞是否存在的字符串。
可选的,所述根据网站漏洞的类型构造所述漏洞检测网址,包括:
若所述漏洞为SQL注入漏洞,则直接采用漏洞网址作为漏洞检测网址。
可选的,所述根据网站漏洞的类型构造所述漏洞检测网址,包括:
若所述漏洞为跨站漏洞,则直接采用漏洞网址作为漏洞检测网址,并构造表单及所需参数,提交至所述漏洞检测网址。
可选的,所述构造漏洞检测网址,包括:
从漏洞库中提取漏洞测试串构造所述漏洞检测网址,所述漏洞库至少包括HTTP请求方法、漏洞测试串、漏洞测试表单及漏洞存在证明。
依据本发明的一个方面,提供了一种网站漏洞在线验证装置,包括:
获取单元,用于获取网站的漏洞网址;
构造单元,用于根据获取的所述漏洞网址,构造漏洞检测网址;
加载单元,用于加载所述漏洞检测网址以获取响应信息;
显示单元,用于提取并显示所述响应信息以验证所述网站漏洞。
可选的,所述获取单元,用于:
对所述网站进行漏洞扫描,获取所述网站存在漏洞的网址。
可选的,所述构造单元,用于:
根据所述网站漏洞的类型构造所述漏洞检测网址。
可选的,所述构造单元,包括:
第一构造模块,用于若所述漏洞为信息泄露类漏洞,则根据存在漏洞的网站的网址以及所述漏洞对应的漏洞测试串,构造所述漏洞检测网址,所述漏洞测试串为用于检测漏洞是否存在的字符串。
可选的,所述构造单元,包括:
第二构造模块,用于若所述漏洞为SQL注入漏洞,则直接采用漏洞网址作为漏洞检测网址。
可选的,所述构造单元,包括:
第三构造模块,用于若所述漏洞为跨站漏洞,则直接采用漏洞网址作为漏洞检测网址,并构造表单及所需参数,提交至所述漏洞检测网址。
可选的,所述构造单元,用于:从漏洞库中提取漏洞测试串构造所述漏洞检测网址,所述漏洞库至少包括HTTP请求方法、漏洞测试串、漏洞测试表单及漏洞存在证明。
本发明实施例提供一种网站漏洞在线验证方法及装置,通过获取网站的漏洞网址,构造漏洞检测网址;加载所述漏洞检测网址以获取响应信息;提取并显示所述响应信息以验证所述网站漏洞。与现有技术中网站漏洞显示页面仅指出了某个网站存在漏洞,无法通过链接很好的验证漏洞是否真实存在,因此不懂网站安全的用户可能以为这些漏洞是误报相比,本发明实施例通过构造漏洞检测网址对漏洞进行检测,可以验证漏洞是否真实存在,使得不懂网站安全的用户不会怀疑这些漏洞的存在,提高用户体验。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本发明实施例提供一种漏洞在线演示的方法,该方法的执行主体可以为服务器,如图1所示,该方法包括:
步骤101,获取网站的漏洞网址,构造漏洞检测网址。
可选的,通过对网站进行漏洞扫描,发现漏洞后,获取存在漏洞的网站的网址。网站的网址可以为统一资源定位符(UniformResource Locator,URL),但本发明不限定网站的网址为URL,还可以为包括任何标识网站网址的方式。
可选的,可以通过网络爬虫获取网站的网址,即,网络爬虫从网站所在的网站服务器抓取网址。
本步骤包括:根据所述网站漏洞的类型构造所述漏洞检测网址;或者,从漏洞库中提取漏洞测试串构造所述漏洞检测网址,所述漏洞库至少包括HTTP请求方法、漏洞测试串、漏洞测试表单及漏洞存在证明。
步骤102,加载所述漏洞检测网址以获取响应信息。
本步骤包括:进入前台漏洞扫描后获得的漏洞扫描结果展示页面,这个漏洞扫描结果展示页面中包括网站的所有的漏洞信息。如图2所示漏洞扫描结果展示页面示意图,包括存在漏洞页面以及漏洞名称,其中存在漏洞页面为http://bbs.webscan.360.cn/对应的页面,漏洞名称为Flash配置不当漏洞,其后面还包括漏洞详情图标。可选的,漏洞详情图标可以设置为各种方式,例如,漏洞详情图标为包括“漏洞详情”字样的图标,或者漏洞详情图标为包括图案的图标,在此不限定漏洞详情图标的显示方式。
进一步的,当接收到用户通过点击所述漏洞扫描结果展示页面中的漏洞详情图标的操作后,进入漏洞详情展示页面。
可选的,如图3所示,当点击漏洞详情图标之后,显示漏洞详情展示页面。漏洞详情展示页面包括漏洞的详细情况,例如漏洞上线时间、漏洞名称、漏洞类型、漏洞证据、漏洞地址等等。在漏洞详情展示页面下方包括漏洞演示图标,例如,漏洞演示图标可以为包括“点这里跳转,进行漏洞演示”字样的图标,或者,漏洞演示图标为包括“漏洞演示”字样的图标,或者,漏洞演示图标还可以为仅包括图案的图标,需要说明的是,漏洞演示图标还可以为其他样式的图标,在此不再一一赘述。
进一步的,当接收到所述用户通过点击所述漏洞详情展示页面中的漏洞演示图标的操作后,加载所述检测网址以获得响应信息。
步骤103,提取并显示所述响应信息以验证所述网站漏洞。
所述漏洞详情展示页面中包括所述漏洞存在的证据;
当所述响应信息中的内容与所述漏洞存在的证据相同时,确定所述网站存在漏洞;如图4所示的加载所述检测网址以获得结果页面,其中包括与漏洞存在的证据相同的内容,因此可以确定网站存在漏洞。
当所述结果页面中的内容与所述漏洞存在的证据不相同时,确定所述网站不存在漏洞。
本发明实施例提供一种网站漏洞在线验证方法,通过获取网站的漏洞网址,构造漏洞检测网址;加载所述漏洞检测网址以获取响应信息;提取并显示所述响应信息以验证所述网站漏洞,可以验证漏洞是否真实存在,使得不懂网站安全的用户不会怀疑这些漏洞的存在,提高用户体验。
本发明实施例提供一种网站漏洞在线验证方法,该方法的执行主体可以为服务器,如图5所示,该方法包括:
步骤501,对所述网站进行漏洞扫描,扫描出所述网站存在漏洞。
可选的,当网站被扫描出存在漏洞时,会在漏洞扫描结果展示页面显示存在漏洞的网址,存在漏洞的网站的网址为http://bbs.webscan.360.cn/。
步骤502,获取所述网站存在漏洞的网址。
可选的,可以通过网络爬虫获取网站的网址,即网络爬虫从网站所在的网站服务器抓取网址。
步骤503,确定所述网站漏洞的类型。
可选的,网站漏洞的类型包括信息泄露类漏洞、结构化查询语言(Structured Query Language,SQL)注入漏洞、跨站漏洞(Cross SiteScripting,CSS)。
SQL注入漏洞可以用来从数据库获取敏感信息,或者利用数据库的特性执行添加用户、导出文件等一系列恶意操作,甚至有可能获取数据库乃至***最高权限。
跨站漏洞是由于程序员在编写程序时,对一些变量没有做充分的过滤,直接把用户提交的数据送到SQL语句里执行,这样导致黑客可以提交一些特意构造的语句,黑客利用跨站漏洞输入恶意的脚本代码,当恶意的代码被执行后就形成了所谓的跨站攻击。
步骤504,若所述漏洞为信息泄露类漏洞,从漏洞库中提取漏洞测试串。
可选的,漏洞测试串是由编程人员手动编辑的,可以在漏洞编辑过程中录入,所述漏洞测试串为用于检测漏洞是否存在的字符串,保存在漏洞库中。
所述漏洞库至少包括超文本传输协议(Hypertext transferprotocol,HTTP)请求方法、漏洞测试串、漏洞测试表单及漏洞存在证明。
需要说明的是,HTTP方法包括GET方法或者POST方法。其中,GET方法是从服务器上获取数据,即用于信息获取,POST方法是向服务器传送数据。GET是将参数数据队列加到提交表单的Action属性所指的网址中,值和表单内各个字段一一对应,GET请求的数据会附在网址之后即将数据放置在HTTP协议头中,以?分割URL和传输数据,参数之间以&相连。POST将表单内各个字段与其内容放置在HTML头内一起传送到Action属性所指的网址,POST把提交的数据放置在HTTP包的包体中。
步骤505,根据存在漏洞的网站的网址以及所述漏洞对应的漏洞测试串,构造所述漏洞检测网址,所述漏洞测试串为用于检测漏洞是否存在的字符串。
进一步可选的,将所述漏洞测试串添加在所述网站的网址之后,构成漏洞检测网址。
可选的,例如,存在漏洞的网站的网址为webscan.360.cn/,漏洞对应的漏洞测试串为.svn/entries,则构造的检测网址可以为webscan.360.cn/.svn/entries。
步骤506,若所述漏洞为SQL注入漏洞,则直接采用漏洞网址作为漏洞检测网址。
步骤507,若所述漏洞为跨站漏洞,则直接采用漏洞网址作为漏洞检测网址,并构造表单及所需参数,提交至所述漏洞检测网址。
可选的,首先获得网站中的一个表单网页后,抽取表单的提交方式(GET方式或POST方式)、目标链接即漏洞检测网址和通用网关接口(Common Gateway Interface,CGI)参数,根据这些信息进行综合分析,为表单配置输入值,提交给Web服务器执行模拟攻击。然后分析Web服务器的响应,确定Web站点是否存在漏洞。
GET方法不需要构造表单,POST方法需要构造表单,例如,如果是一个GET请求,则直接请求整个检测网址http://webscan.360.cn/index.php?a=1就好了,如果是POST请求,则请求的检测网址为http://webscan.360.cn/index.php,内容为a=1。
需要说明的是,步骤504以及步骤505、步骤506、步骤507为并列步骤,即构造漏洞检测网址的并列方案,附图5中以虚线框表示步骤506、步骤507为可选步骤,当然,也可以虚线框表示步骤504以及步骤505。
步骤508,调取并显示漏洞扫描结果展示页面。
漏洞扫描结果展示页面为在对网站进行漏洞扫描时获得的结果页面。当执行获取检测网址的操作时,此页面置于后台,当获取检测网址之后,调取漏洞扫描结果展示页面,使其置于前台,以便进行漏洞在线演示。
步骤509,当接收到用户通过点击所述漏洞扫描结果展示页面中的漏洞详情图标的操作后,进入漏洞详情展示页面。
当用户希望查看漏洞详情时,则可以直接点击所述漏洞扫描结果展示页面中的漏洞详情图标,则服务器显示漏洞详情展示页面。如图3所示,漏洞详情展示页面中包括漏洞上线时间、漏洞名称、漏洞类型、漏洞证据、漏洞地址等等。
需要说明的是,漏洞证据可以用于用户判断漏洞是否真实存在。
步骤510,当接收到所述用户通过点击所述漏洞详情展示页面中的漏洞演示图标的操作后,加载所述漏洞检测网址以获得响应信息。
步骤511,提取并显示所述响应信息以验证所述网站漏洞。
所述响应信息中中包括网站是否存在漏洞的证据。
可选的,用户点击所述漏洞详情展示页面中的漏洞演示图标后,服务器加载漏洞检测网址。
可选的,用户可以根据响应信息判断漏洞是否真实存在。即所述漏洞详情展示页面中包括所述漏洞存在的证据;当所述响应信息中的内容与所述漏洞存在的证据相同时,确定所述网站存在漏洞;当所述响应信息中的内容与所述漏洞存在的证据不相同时,确定所述网站不存在漏洞。
本发明实施例提供一种漏洞在线演示的方法,通过根据存在漏洞的网站的网址,构造漏洞检测网址;加载所述漏洞检测网址以获取响应信息;提取并显示所述响应信息以验证所述网站漏洞,从而可以解决现有技术中无法验证漏洞是否真实存在的问题,使得不懂网站安全的用户不会怀疑这些漏洞的存在,提高用户体验。
本发明实施例提供一种漏洞在线演示的装置,该装置可以为服务器,如图6所示,该装置包括:获取单元601,构造单元602,加载单元603,显示单元604;
获取单元601,用于获取网站的漏洞网址;
构造单元602,用于根据获取的所述漏洞网址,构造漏洞检测网址;
可选的,网站的网址可以为统一资源定位符URL,但本发明不限定网站的网址为URL,还可以为包括任何标识网站网址的方式。
例如,网站的网址为webscan.360.cn/,漏洞对应的漏洞测试串为.svn/entries,则构造的检测网址可以为webscan.360.cn/.svn/entries。
加载单元603,用于加载所述漏洞检测网址以获取响应信息;
显示单元604,用于提取并显示所述响应信息以验证所述网站漏洞。
进一步可选的,所述获取单元601,用于对所述网站进行漏洞扫描,获取所述网站存在漏洞的网址。
进一步可选的,所述构造单元602,用于根据所述网站漏洞的类型构造所述漏洞检测网址。
进一步可选的,如图7所示,所述构造单元602包括:第一构造模块6021,第二构造模块6022,第三构造模块6023;
第一构造模块6021,用于若所述漏洞为信息泄露类漏洞,则根据存在漏洞的网站的网址以及所述漏洞对应的漏洞测试串,构造所述漏洞检测网址,所述漏洞测试串为用于检测漏洞是否存在的字符串。
第二构造模块6022,用于若所述漏洞为SQL注入漏洞,则直接采用漏洞网址作为漏洞检测网址。
第三构造模块6023,用于若所述漏洞为跨站漏洞,则直接采用漏洞网址作为漏洞检测网址,并构造表单及所需参数,提交至所述漏洞检测网址。
进一步可选的,所述构造单元602,用于:从漏洞库中提取漏洞测试串构造所述漏洞检测网址,所述漏洞库至少包括HTTP请求方法、漏洞测试串、漏洞测试表单及漏洞存在证明。
需要说明的是,HTTP方法包括GET方法或者POST方法。其中,GET方法是从服务器上获取数据,即用于信息获取,POST方法是向服务器传送数据。GET是将参数数据队列加到提交表单的Action属性所指的网址中,值和表单内各个字段一一对应,GET请求的数据会附在网址之后即将数据放置在HTTP协议头中,以?分割URL和传输数据,参数之间以&相连。POST将表单内各个字段与其内容放置在HTML头内一起传送到Action属性所指的网址,POST把提交的数据放置在HTTP包的包体中。
需要说明的是,附图6或者附图7所示装置中,其各个模块的具体实施过程以及各个模块之间的信息交互等内容,由于与本发明方法实施例基于同一发明构思,可以参见方法实施例,在此不一一赘述。
本发明实施例提供一种漏洞在线演示的装置,通过构造单元根据存在漏洞的网站的网址,构造漏洞检测网址;加载单元,用于加载所述漏洞检测网址以获取响应信息;显示单元,用于提取并显示所述响应信息以验证所述网站漏洞,从而可以解决现有技术中无法验证漏洞是否真实存在的问题,使得不懂网站安全的用户不会怀疑这些漏洞的存在,提高用户体验。
c11、根据权利要求10所述的装置,所述构造单元,包括:
第一构造模块,用于若所述漏洞为信息泄露类漏洞,则根据存在漏洞的网站的网址以及所述漏洞对应的漏洞测试串,构造所述漏洞检测网址,所述漏洞测试串为用于检测漏洞是否存在的字符串。
c12、根据权利要求10所述的装置,所述构造单元,包括:
第二构造模块,用于若所述漏洞为SQL注入漏洞,则直接采用漏洞网址作为漏洞检测网址。
c13、根据权利要求10所述的装置,所述构造单元,包括:
第三构造模块,用于若所述漏洞为跨站漏洞,则直接采用漏洞网址作为漏洞检测网址,并构造表单及所需参数,提交至所述漏洞检测网址。
c14、根据权利要求8-13中任一项所述的装置,所述构造单元,用于:从漏洞库中提取漏洞测试串构造所述漏洞检测网址,所述漏洞库至少包括HTTP请求方法、漏洞测试串、漏洞测试表单及漏洞存在证明。
需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用CPU、专用存储器、专用元器件等来实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
在此提供的算法和显示不与任何特定计算机、虚拟***或者其它设备固有相关。各种通用***也可以与基于在此的示教一起使用。根据上面的描述,构造这类***所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。