CN107122665B - 漏洞检测方法以及漏洞检测装置 - Google Patents

漏洞检测方法以及漏洞检测装置 Download PDF

Info

Publication number
CN107122665B
CN107122665B CN201610103718.2A CN201610103718A CN107122665B CN 107122665 B CN107122665 B CN 107122665B CN 201610103718 A CN201610103718 A CN 201610103718A CN 107122665 B CN107122665 B CN 107122665B
Authority
CN
China
Prior art keywords
detection
sentence
parameter
time
service device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201610103718.2A
Other languages
English (en)
Other versions
CN107122665A (zh
Inventor
何双宁
马杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Tencent Cloud Computing Beijing Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201610103718.2A priority Critical patent/CN107122665B/zh
Publication of CN107122665A publication Critical patent/CN107122665A/zh
Application granted granted Critical
Publication of CN107122665B publication Critical patent/CN107122665B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security

Abstract

本发明提供一种漏洞检测方法,其包括构造设定数量的检测执行语句;将检测执行语句发送至检测服务器,以获取检测执行语句对应的返回时间延迟;根据检测执行语句的时间参数以及返回时间延迟,获取检测服务器对应的判断参数;根据检测服务器对应的判断参数,确定检测服务器的通用网关接口注入漏洞。本发明还提供一种漏洞检测装置。本发明的漏洞检测方法及漏洞检测装置通过多个检测执行语句的时间参数以及返回时间延迟,来确定检测服务器的漏洞,检测准确性高,且可被所有的MySQL数据库支持,兼容性强。

Description

漏洞检测方法以及漏洞检测装置
技术领域
本发明涉及检测领域,特别是涉及一种漏洞检测方法及漏洞检测装置。
背景技术
CGI(Common Gateway Interface,通用网关接口)的SQL(Structured QueryLanguage,结构化查询语言)注入漏洞是指网站服务器对输入校验存在缺陷,从而导致攻击者可通过SQL执行程序盗取网站服务器的后台数据的网站服务器漏洞。
网站服务器请求的输入方法主要是通过HTTP(HyperText Transfer Protocol,超文本传输协议)传输协议的GET或者POST方法。例如,某网站有这样一个网址:http://www.xxx.com/getinfo.php?id=1,用户访问该网址后,会执行一条SQL语句,获取网站服务器的数据库表中id为1的数据,并返回给用户。如果网站服务器没有对id这个参数做校验,可执行用户输入的任意SQL语句,那么攻击者就可以构造一个恶意的SQL语句,非法获取或者盗取该网站的数据。
现有技术可通过基于时间延迟的方式检测CGI的SQL注入漏洞,即构造一SQL语句,该SQL语句提交网站服务器执行后,会停留一段时间再返回执行结果,通过检测执行结果的返回时间延迟可判断该网站服务器是否存在CGI的SQL注入漏洞。
该SQL语句可通过以下两种方式构造:
1、使用SQL的sleep函数,攻击者输入sleep(n)的执行语句,网站服务器执行该语句会停留n秒后才会返回,这种检测方法的返回时间延迟基本只受到网络波动的影响,检测准确性较高,但是部分MySQL数据库不支持sleep方法。
2、使用SQL的benchmark函数,攻击者输入benchmark(n,function)的执行语句,其中function是数据库中的一个标准函数,n表示网站服务器实行该标准函数的次数。这里可以n为自变量X,网站服务器的返回时间延迟作为因变量Y,其满足以下关系:
Y=β12X;
其中β1和β2均为常数。
上述检测方法适用于所有版本的MySQL数据库,但是该检测方法的返回时间延迟是不固定的,返回时间延迟会受到网络波动,服务器性能和负载等因素的影响,因而检测准确性较差。
发明内容
本发明实施例提供一种检测准确性高且兼容性较强的漏洞检测方法及漏洞检测装置;以解决现有的漏洞检测方法及漏洞检测装置的检测准确性较低或兼容性较差的技术问题。
本发明实施例提供一种漏洞检测方法,其包括:
构造设定数量的检测执行语句,其中每个所述检测执行语句对应的时间参数均不同;
将所述检测执行语句发送至检测服务器,以获取所述检测执行语句对应的返回时间延迟;
根据所述检测执行语句的时间参数以及返回时间延迟,获取所述检测服务器对应的判断参数;以及
根据所述检测服务器对应的判断参数,确定所述检测服务器的通用网关接口注入漏洞。
本发明实施例还提供一种漏洞检测装置,其包括:
执行语句构造模块,用于构造设定数量的检测执行语句,其中每个所述检测执行语句对应的时间参数均不同;
时间延迟获取模块,用于将所述检测执行语句发送至检测服务器,以获取所述检测执行语句对应的返回时间延迟;
参数获取模块,用于根据所述检测执行语句的时间参数以及返回时间延迟,获取所述检测服务器对应的判断参数;以及
漏洞检测模块,用于根据所述检测服务器对应的判断参数,确定所述检测服务器的通用网关接口注入漏洞。
相较于现有技术的漏洞检测方法及漏洞检测装置,本发明的漏洞检测方法及漏洞检测装置通过多个检测执行语句的时间参数以及返回时间延迟,来确定检测服务器的漏洞,检测准确性高,且可被所有的MySQL数据库支持,兼容性强;解决了现有的漏洞检测方法及漏洞检测装置的检测准确性较低或兼容性较差的技术问题。
附图说明
图1为本发明的漏洞检测方法的第一优选实施例的流程图;
图2为本发明的漏洞检测方法的第二优选实施例的流程图;
图3为本发明的漏洞检测方法的第三优选实施例的流程图;
图4为本发明的漏洞检测装置的第一优选实施例的结构示意图;
图5为本发明的漏洞检测装置的第二优选实施例的结构示意图;
图6为本发明的漏洞检测装置的第二优选实施例的时间延迟获取模块的结构示意图;
图7为本发明的漏洞检测装置的第二优选实施例的参数获取模块的结构示意图;
图8为本发明的漏洞检测装置的第二优选实施例的漏洞检测模块的结构示意图;
图9为本发明的漏洞检测装置的第三优选实施例的结构示意图;
图10为本发明的漏洞检测装置的第三优选实施例的参数获取模块的结构示意图;
图11为本发明的漏洞检测装置的第三优选实施例的漏洞检测模块的结构示意图;
图12为本发明的漏洞检测方法及漏洞检测装置的具体实施例中的回归曲线示意图;
图13为本发明的漏洞检测装置所在的电子设备的工作环境结构示意图。
具体实施方式
请参照图式,其中相同的组件符号代表相同的组件,本发明的原理是以实施在一适当的运算环境中来举例说明。以下的说明是基于所例示的本发明具体实施例,其不应被视为限制本发明未在此详述的其它具体实施例。
在以下的说明中,本发明的具体实施例将参考由一部或多部计算机所执行之作业的步骤及符号来说明,除非另有述明。因此,其将可了解到这些步骤及操作,其中有数次提到为由计算机执行,包括了由代表了以一结构化型式中的数据之电子信号的计算机处理单元所操纵。此操纵转换该数据或将其维持在该计算机之内存系统中的位置处,其可重新配置或另外以本领域技术人员所熟知的方式来改变该计算机之运作。该数据所维持的数据结构为该内存之实体位置,其具有由该数据格式所定义的特定特性。但是,本发明原理以上述文字来说明,其并不代表为一种限制,本领域技术人员将可了解到以下所述的多种步骤及操作亦可实施在硬件当中。
本发明的漏洞检测装置可使用各种电子设备进行实施,该电子设备包括但不限于个人计算机、服务器计算机、手持式或膝上型设备、移动设备(比如移动电话、个人数字助理(PDA)、媒体播放器等等)、多处理器系统、消费型电子设备、小型计算机、大型计算机、包括上述任意系统或设备的分布式计算环境,等等。但该电子设备优选为CGI漏洞检测终端,以提高检测相应网站服务器的CGI漏洞的准确性以及兼容性。
请参照图1,图1为本发明的漏洞检测方法的第一优选实施例的流程图。本优选实施例的漏洞检测方法可使用上述的电子设备进行实施,本优选实施例的漏洞检测方法包括:
步骤S101,构造设定数量的检测执行语句,其中每个检测执行语句对应的时间参数均不同;
步骤S102,将检测执行语句发送至检测服务器,以获取检测执行语句对应的返回时间延迟;
步骤S103,根据检测执行语句的时间参数以及返回时间延迟,获取检测服务器对应的判断参数;
步骤S104,根据检测服务器对应的判断参数,确定该检测服务器的通用网关接口注入漏洞。
下面详细说明本优选实施例的漏洞检测方法中的各步骤的具体流程。
在步骤S101中,漏洞检测装置,如注入漏洞检测终端等构造设定数量的检测执行语句,该检测执行语句可为具有sleep函数的SQL执行语句或具有benchmark函数的SQL执行语句等。其中sleep(n1)函数中的n1为该检测执行语句的时间参数,n1为网站服务器执行该语句后的停留时间。其中benchmark(n2,function)函数中的n2为该检测执行语句的时间参数,n2为网站服务器执行标准函数function的次数。如检测服务器执行该检测执行语句,则确定检测服务器具有通用网关接口注入漏洞;如检测服务器未执行该检测执行语句,则确定检测服务器不具有通用网关接口注入漏洞。
为了便于通过检测执行语句检测该检测服务器的通用网关接口注入漏洞,每个检测执行语句对应的时间参数均不同;随后转到步骤S102。
在步骤S102中,漏洞检测装置将步骤S101构造的检测执行语句在较短时间内依次发送至检测服务器,如在一秒内发送五个不同的检测执行语句至检测服务器等。检测服务器会对该检测执行语句进行执行,并返回相应的执行结果至漏洞检测装置。漏洞检测装置可获取该检测执行语句对应的返回时间延迟。该返回时间延迟由网络波动,服务器性能、负载以及检测执行语句的执行情况造成,由于设定数量的检测执行语句在较短时间内依次发送至检测服务器,因此每个检测执行语句受到的网络波动,服务器性能以及负载的影响大致相同。
如检测服务器不具有通用网关接口注入漏洞,则检测执行语句在检测服务器均未执行,即检测执行语句的执行情况相同时,检测执行语句对应的返回时间延迟基本相同。如检测服务器具有通用网关接口注入漏洞,则检测执行语句的执行情况与检测执行语句对应的时间参数相关,返回时间延迟只会受到检测执行语句对应的时间参数的影响。随后转到步骤S103。
在步骤S103中,漏洞检测装置根据步骤S101获取的多个检测执行语句的时间参数以及步骤S102获取的对应的检测执行语句的返回时间延迟,获取检测服务器对应的判断参数,该判断参数根据多个同一MySQL数据库对应的检测执行语句的参数综合分析得出,因此不会受到网络波动,服务器性能、负载以及不同MySQL数据库的影响。随后转到步骤S104。
在步骤S104,漏洞检测装置根据步骤S103获取的检测服务器对应的判断参数,确定该检测服务器的通用网关接口注入漏洞,即CGI的SQL注入漏洞。
这样即完成了本优选实施例的漏洞检测方法的漏洞检测过程。
本优选实施例的漏洞检测方法通过多个检测执行语句的时间参数以及返回时间延迟,来确定检测服务器的漏洞,检测准确性高,即降低了具有通用网关接口注入漏洞时的误报率以及不具有通用网关接口注入漏洞时的漏报率。且本优选实施例的漏洞检测方法可被所有的MySQL数据库支持,兼容性强。
请参照图2,图2为本发明的漏洞检测方法的第二优选实施例的流程图。本优选实施例的漏洞检测方法可使用上述的电子设备进行实施,本优选实施例的漏洞检测方法包括:
步骤S201,构造设定数量的检测执行语句,其中每个检测执行语句对应的时间参数均不同;
步骤S202,将检测执行语句发送至检测服务器,以接收检测服务器返回的检测执行结果;
步骤S203,根据检测执行结果的返回时间,获取检测执行语句对应的返回时间延迟;
步骤S204,以检测执行语句的时间参数作为自变量,检测执行语句的返回时间延迟作为因变量,进行一元线性相关性检测;
步骤S205,根据检测执行语句的时间参数以及检测执行语句的返回时间延迟的相关系数,设定检测服务器对应的判断参数;
步骤S206,判断判断参数是否小于等于第一设定值,如小于等于第一设定值,则转到步骤S207;如大于第一设定值,则转到步骤S208。
步骤S207,确定检测服务器不存在通用网关接口注入漏洞;
步骤S208,确定检测服务器存在通用网关接口注入漏洞。
下面详细说明本优选实施例的漏洞检测方法的各步骤的具体流程。
在步骤S201中,漏洞检测装置构造设定数量的检测执行语句,该检测执行语句可为具有sleep函数的SQL执行语句或具有benchmark函数的SQL执行语句等。其中sleep(n1)函数中的n1为该检测执行语句的时间参数,n1为网站服务器执行该语句后的停留时间。其中benchmark(n2,function)函数中的n2为该检测执行语句的时间参数,n2为网站服务器执行标准函数function的次数。如检测服务器执行该检测执行语句,则确定检测服务器具有通用网关接口注入漏洞;如检测服务器未执行该检测执行语句,则确定检测服务器不具有通用网关接口注入漏洞。
为了通过多个不同的检测执行语句检测该检测服务器的通用网关接口注入漏洞,每个检测执行语句对应的时间参数均不同;随后转到步骤S202。
在步骤S202中,漏洞检测装置将步骤S201构造的检测执行语句在较短时间内依次发送至检测服务器,如在一秒内发送五个不同的检测执行语句至检测服务器等。检测服务器会对该检测执行语句进行执行,并返回相应的检测执行结果至漏洞检测装置。漏洞检测装置可获取该检测执行语句对应的返回时间延迟。该返回时间延迟由网络波动,服务器性能、负载以及检测执行语句的执行情况造成。随后转到步骤S203。
在步骤S203中,漏洞检测装置根据步骤S202中的检测执行结果的返回时间,获取检测执行语句对应的返回时间延迟,这里的返回时间延迟可由网络波动,服务器性能、负载以及检测执行语句的执行情况造成,由于设定数量的检测执行语句在较短时间内依次发送至检测服务器,因此每个检测执行语句受到的网络波动,服务器性能以及负载的影响大致相同。
如检测服务器不具有通用网关接口注入漏洞,则检测执行语句在检测服务器均未执行,即检测执行语句的执行情况相同时,检测执行语句对应的返回时间延迟基本相同。如检测服务器具有通用网关接口注入漏洞,则检测执行语句的执行情况与检测执行语句对应的时间参数相关,返回时间延迟只会受到检测执行语句对应的时间参数的影响。随后转到步骤S204。
在步骤S204中,漏洞检测装置以步骤S201获取的检测执行语句的时间参数作为自变量,步骤S203获取的检测执行语句的返回时间延迟作为因变量,进行一元线性相关性检测。
具体为根据多个检测执行语句的时间参数以及对应的检测执行语句的返回时间延迟构建以下回归函数:
Yi=β12Xi3
其中Y为检测执行语句的返回时间延迟,X为检测执行语句的时间参数,i为检测执行语句的编号,β1为回归函数的截距,β2为回归函数的回归系数,β3为回归函数的随机误差项。随后转到步骤S205。
在步骤S205中,漏洞检测装置根据上述回归函数,获取检测执行语句的时间参数以及检测执行语句的返回时间延迟的相关系数,具体可参见以下公式:
其中r为相关系数,n为检测执行语句的数量。
该相关系数r用于表示检测执行语句的返回时间延迟Y和检测执行语句的时间参数X的相关程度,其中r的取值范围为-1至1,r大于零则表示返回时间延迟Y和时间参数X正相关,r小于0则表示返回时间延迟Y和时间参数X负相关,r等于0则表示返回时间延迟Y和时间参数X不相关,r等于1表示返回时间延迟Y和时间参数X完全正相关,r等于-1表示返回时间延迟Y和时间参数X完全负相关。
随后可根据检测执行语句的时间参数以及检测执行语句的返回时间延迟的相关系数,设定检测服务器对应的判断参数R=(r)2,R的取值范围为0至1,当R=1时,表示返回时间延迟Y和时间参数X完全相关,返回时间延迟Y的变化完全由时间参数X的变化造成,R越接近1,则返回时间延迟Y和时间参数X的相关程度越显著。随后转到步骤S206。
在步骤S206中,漏洞检测装置判断步骤S205中获取的判断参数是否小于等于第一设定值,如小于等于第一设定值,则转到步骤S207;如大于第一设定值,则转到步骤S208。
在步骤S207中,如判断参数小于等于第一设定值,如0.995等,则漏洞检测装置确定返回时间延迟Y与时间参数X不相关,即检测执行语句在检测服务器上并没有得到执行,因此确定检测服务器不存在通用网关接口注入漏洞。
在步骤S208中,如判断参数大于第一设定值,如0.995等,则漏洞检测装置确定返回时间延迟Y与时间参数X具有较为显著的相关性,即检测服务器执行了该检测执行语句,因此确定检测服务器存在通用网关接口注入漏洞。
这样即完成了本优选实施例的漏洞检测方法的漏洞检测过程。
在第一优选实施例的基础上,本优选实施例的漏洞检测方法通过多个检测执行语句的时间参数以及返回时间延迟的相关性,来确定检测执行语句是否在检测服务器上执行,从而确定检测服务器的通用网关接口注入漏洞,该检测准确性高,即降低了具有通用网关接口注入漏洞时的误报率以及不具有通用网关接口注入漏洞时的漏报率。且本优选实施例的漏洞检测方法可被所有的MySQL数据库支持,兼容性强。
请参照图3,图3为本发明的漏洞检测方法的第二优选实施例的流程图。本优选实施例的漏洞检测方法可使用上述的电子设备进行实施,本优选实施例的漏洞检测方法包括:
步骤S301,构造设定数量的检测执行语句,其中每个检测执行语句对应的时间参数均不同;
步骤S302,将检测执行语句发送至检测服务器,以接收检测服务器返回的检测执行结果;
步骤S303,根据检测执行结果的返回时间,获取检测执行语句对应的返回时间延迟;
步骤S304,以检测执行语句的时间参数作为自变量,检测执行语句的返回时间延迟作为因变量,进行一元线性相关性检测;
步骤S305,根据检测执行语句的时间参数以及检测执行语句的返回时间延迟的相关系数,设定检测服务器对应的判断参数;
步骤S306,根据检测执行语句的时间参数以及检测执行语句的返回时间延迟的回归系数,设定检测服务器对应的回归参数;
步骤S307,判断判断参数是否小于等于第一设定值,如小于等于第一设定值,则转到步骤S308;如大于第一设定值,则转到步骤S309;
步骤S308,确定检测服务器不存在通用网关接口注入漏洞;
步骤S309,判断回归参数是否大于第二设定值,如大于第二设定值,则转到步骤S310;如小于等于第二设定值,则转到步骤S311;
步骤S310,确定检测服务器存在通用网关接口注入漏洞;
步骤S311,对回归参数进行有效性检测,并根据检测结果,确定检测服务器的通用网关接口注入漏洞。
下面详细说明本优选实施例的漏洞检测方法的各步骤的具体流程。
在步骤S301至步骤S305与上述的漏洞检测方法的第二优选实施例的步骤S201至步骤S205中的描述相同,具体请参见上述漏洞检测方法的第二优选实施例中的相关描述。
在步骤S306中,漏洞检测装置获取检测执行语句的时间参数以及检测执行语句的返回时间延迟的回归系数,即相应的回归函数的回归系数β2,并将回归系数β2设定为检测服务器对应的回归参数。回归系数β2表示返回时间延迟随着时间参数的变化程度,回归系数β2越大,表示返回时间延迟随时间参数的变化程度越明显。随后转到步骤S307。
在步骤S307中,漏洞检测装置判断步骤S306中获取的判断参数是否小于等于第一设定值,如小于等于第一设定值,则转到步骤S308;如大于第一设定值,则转到步骤S309。
在步骤S308中,如判断参数小于等于第一设定值,如0.995等,则漏洞检测装置确定返回时间延迟Y与时间参数X不相关,即检测执行语句在检测服务器上并没有得到执行,因此确定检测服务器不存在通用网关接口注入漏洞。
在步骤S309中,如判断参数大于第一设定值,如0.995等,则漏洞检测装置确定返回时间延迟Y与时间参数X具有较为显著的相关性,但是当检测服务器对应的回归参数较小且检测执行语句的时间参数较为接近时,可能步骤S304获取的回归函数可能是错误的。
因此这里漏洞检测装置继续判断相应的回归参数是否大于第二设定值,如0.5,如大于第二设定值,则转到步骤S310;如小于等于第二设定值,则转到步骤S311。
在步骤S310中,如回归参数大于第二设定值,则漏洞检测装置确定时间参数X对返回时间延迟Y的影响较大,即检测服务器执行了该检测执行语句,因此确定检测服务器存在通用网关接口注入漏洞。
在步骤S311中,如回归参数小于等于第二设定值,则漏洞检测装置对回归参数进行有效性检测,并根据检测结果,确定检测服务器的通用网关接口注入漏洞,有效性检测的过程具体为:
按步骤S301中的检测执行语句中的时间参数的最大值设定一检测时间参数,该检测时间参数可为检测执行语句中的时间参数的最大值的n倍(如两倍)。以该检测时间参数构造一检测执行语句。
然后将该检测执行语句发送至检测服务器进行执行,以获取相应的第一检测返回时间延迟;再通过该检测时间参数以及相应的回归函数计算第二检测返回时间延迟。
如第一检测返回时间延迟和第二检测返回时间延迟的误差小于设定值,则确定回归参数有效,即检测服务器执行了该检测执行语句,因此确定检测服务器存在通用网关接口注入漏洞。
如第一检测返回时间延迟和第二检测返回时间延迟的误差大于等于设定值,则确定回归参数无效,即检测执行语句在检测服务器上并没有得到执行,因此确定检测服务器不存在通用网关接口注入漏洞。该设定值可根据检测具体情况进行设定。
这样即完成了本优选实施例的漏洞检测方法的漏洞检测过程。
在第二优选实施例的基础上,本优选实施例的漏洞检测方法通过对回归函数的回归系数进行有效性判断,进一步提高了检测服务器的通用网关接口注入漏洞的检测准确性。
本发明还提供一种漏洞检测装置,请参照图4,图4为本发明的漏洞检测装置的第一优选实施例的结构示意图。本优选实施例的漏洞检测装置可使用上述的漏洞检测方法的第一优选实施例进行实施,该漏洞检测装置40包括执行语句构造模块41、时间延迟获取模块42、参数获取模块43以及漏洞检测模块44。
执行语句构造模块41用于构造设定数量的检测执行语句,其中每个检测执行语句对应的时间参数均不同。时间延迟获取模块42用于将检测执行语句发送至检测服务器,以获取检测执行语句对应的返回时间延迟。参数获取模块43用于根据检测执行语句的时间参数以及返回时间延迟,获取检测服务器对应的判断参数。漏洞检测模块44用于根据检测服务器对应的判断参数,确定检测服务器的通用网关接口注入漏洞。
本优选实施例的漏洞检测装置40使用时,首先执行语句构造模块41构造设定数量的检测执行语句,该检测执行语句可为具有sleep函数的SQL执行语句或具有benchmark函数的SQL执行语句等。其中sleep(n1)函数中的n1为该检测执行语句的时间参数,n1为网站服务器执行该语句后的停留时间。其中benchmark(n2,function)函数中的n2为该检测执行语句的时间参数,n2为网站服务器执行标准函数function的次数。如检测服务器执行该检测执行语句,则确定检测服务器具有通用网关接口注入漏洞;如检测服务器未执行该检测执行语句,则确定检测服务器不具有通用网关接口注入漏洞。
为了便于通过检测执行语句检测该检测服务器的通用网关接口注入漏洞,每个检测执行语句对应的时间参数均不同。
随后时间延迟获取模块42将执行语句构造模块41构造的检测执行语句在较短时间内依次发送至检测服务器,如在一秒内发送五个不同的检测执行语句至检测服务器等。检测服务器会对该检测执行语句进行执行,并返回相应的执行结果至漏洞检测装置40。时间延迟获取模块42可获取该检测执行语句对应的返回时间延迟。该返回时间延迟由网络波动,服务器性能、负载以及检测执行语句的执行情况造成,由于设定数量的检测执行语句在较短时间内依次发送至检测服务器,因此每个检测执行语句受到的网络波动,服务器性能以及负载的影响大致相同。
如检测服务器不具有通用网关接口注入漏洞,则检测执行语句在检测服务器均未执行,即检测执行语句的执行情况相同时,检测执行语句对应的返回时间延迟基本相同。如检测服务器具有通用网关接口注入漏洞,则检测执行语句的执行情况与检测执行语句对应的时间参数相关,返回时间延迟只会受到检测执行语句对应的时间参数的影响。
然后参数获取模块43根据执行语句构造模块41获取的多个检测执行语句的时间参数以及时间延迟获取模块42获取的对应的检测执行语句的返回时间延迟,获取检测服务器对应的判断参数,该判断参数根据多个同一MySQL数据库对应的检测执行语句的参数综合分析得出,因此不会受到网络波动,服务器性能、负载以及不同MySQL数据库的影响。
最后漏洞检测模块44根据参数获取模块43获取的检测服务器对应的判断参数,确定该检测服务器的通用网关接口注入漏洞。
这样即完成了本优选实施例的漏洞检测装置40的漏洞检测过程。
本优选实施例的漏洞检测装置通过多个检测执行语句的时间参数以及返回时间延迟,来确定检测服务器的漏洞,检测准确性高,即降低了具有通用网关接口注入漏洞时的误报率以及不具有通用网关接口注入漏洞时的漏报率。且本优选实施例的漏洞检测方法可被所有的MySQL数据库支持,兼容性强。
请参照图5,图5为本发明的漏洞检测装置的第二优选实施例的结构示意图。本优选实施例的漏洞检测装置可使用上述的漏洞检测方法的第二优选实施例进行实施。该漏洞检测装置50包括执行语句构造模块51、时间延迟获取模块52、参数获取模块53以及漏洞检测模块54。
执行语句构造模块51用于构造设定数量的检测执行语句,其中每个检测执行语句对应的时间参数均不同。时间延迟获取模块52用于将检测执行语句发送至检测服务器,以获取检测执行语句对应的返回时间延迟。参数获取模块53用于根据检测执行语句的时间参数以及返回时间延迟,获取检测服务器对应的判断参数。漏洞检测模块54用于根据检测服务器对应的判断参数,确定检测服务器的通用网关接口注入漏洞。
请参照图6,图6为本发明的漏洞检测装置的第二优选实施例的时间延迟获取模块的结构示意图。该时间延迟获取模块52包括执行语句发送单元521以及时间延迟获取单元522。
执行语句发送单元521用于将检测执行语句发送至检测服务器,以接收检测服务器返回的检测执行结果;时间延迟获取单元522用于根据检测执行结果的返回时间,获取检测执行语句对应的返回时间延迟。
请参照图7,图7为本发明的漏洞检测装置的第二优选实施例的参数获取模块的结构示意图。该参数获取模块53包括相关性检测单元531以及判断参数获取单元532。
相关性检测单元531用于以检测执行语句的时间参数作为自变量,检测执行语句的返回时间延迟作为因变量进行一元线性相关性检测;判断参数获取单元532用于根据检测执行语句的时间参数以及检测执行语句的返回时间延迟的相关系数,设定检测服务器对应的判断参数。
请参照图8,图8为本发明的漏洞检测装置的第二优选实施例的漏洞检测模块的结构示意图。该漏洞检测模块54包括第一判断单元541以及漏洞检测单元542。
第一判断单元541用于判断判断参数是否小于等于第一设定值;漏洞检测单元542用于如判断参数小于等于第一设定值,则确定检测服务器不存在通用网关接口注入漏洞;如判断参数大于第一设定值,则确定检测服务器存在通用网关接口注入漏洞。
本优选实施例的漏洞检测装置50使用时,首先执行语句构造模块51构造设定数量的检测执行语句,该检测执行语句可为具有sleep函数的SQL执行语句或具有benchmark函数的SQL执行语句等。其中sleep(n1)函数中的n1为该检测执行语句的时间参数,n1为网站服务器执行该语句后的停留时间。其中benchmark(n2,function)函数中的n2为该检测执行语句的时间参数,n2为网站服务器执行标准函数function的次数。如检测服务器执行该检测执行语句,则判断检测服务器具有通用网关接口注入漏洞;如检测服务器未执行该检测执行语句,则判断检测服务器不具有通用网关接口注入漏洞。
为了通过多个不同的检测执行语句检测该检测服务器的通用网关接口注入漏洞,每个检测执行语句对应的时间参数均不同。
随后时间延迟获取模块52的执行语句发送单元521将执行语句构造模块构造的检测执行语句在较短时间内依次发送至检测服务器,如在一秒内发送五个不同的检测执行语句至检测服务器等。检测服务器会对该检测执行语句进行执行,并返回相应的检测执行结果至漏洞检测装置。时间延迟获取模块52可获取该检测执行语句对应的返回时间延迟。该返回时间延迟由网络波动,服务器性能、负载以及检测执行语句的执行情况造成。
然后时间延迟获取模块52的时间延迟获取单元522根据检测执行结果的返回时间,获取检测执行语句对应的返回时间延迟,这里的返回时间延迟可由网络波动,服务器性能、负载以及检测执行语句的执行情况造成,由于设定数量的检测执行语句在较短时间内依次发送至检测服务器,因此每个检测执行语句受到的网络波动,服务器性能以及负载的影响大致相同。
如检测服务器不具有通用网关接口注入漏洞,则检测执行语句在检测服务器均未执行,即检测执行语句的执行情况相同时,检测执行语句对应的返回时间延迟基本相同。如检测服务器具有通用网关接口注入漏洞,则检测执行语句的执行情况与检测执行语句对应的时间参数相关,返回时间延迟只会受到检测执行语句对应的时间参数的影响。
随后参数获取模块53的相关性检测单元531以执行语句构造模块51获取的检测执行语句的时间参数作为自变量,时间延迟获取模块获取的检测执行语句的返回时间延迟作为因变量,进行一元线性相关性检测。
具体为相关性检测单元531根据多个检测执行语句的时间参数以及对应的检测执行语句的返回时间延迟构建以下回归函数:
Yi=β12Xi3
其中Y为检测执行语句的返回时间延迟,X为检测执行语句的时间参数,i为检测执行语句的编号,β1为回归函数的截距,β2为回归函数的回归系数,β3为回归函数的随机误差项。
然后参数获取模块53的判断参数获取单元532根据上述回归函数,获取检测执行语句的时间参数以及检测执行语句的返回时间延迟的相关系数,具体可参见以下公式:
其中r为相关系数,n为检测执行语句的数量。
该相关系数r用于表示检测执行语句的返回时间延迟Y和检测执行语句的时间参数X的相关程度,其中r的取值范围为-1至1,r大于零则表示返回时间延迟Y和时间参数X正相关,r小于0则表示返回时间延迟Y和时间参数X负相关,r等于0则表示返回时间延迟Y和时间参数X不相关,r等于1表示返回时间延迟Y和时间参数X完全正相关,r等于-1表示返回时间延迟Y和时间参数X完全负相关。
随后判断参数获取单元532可根据检测执行语句的时间参数以及检测执行语句的返回时间延迟的相关系数,设定检测服务器对应的判断参数R=(r)2,R的取值范围为0至1,当R=1时,表示返回时间延迟Y和时间参数X完全相关,返回时间延迟Y的变化完全由时间参数X的变化造成,R越接近1,则返回时间延迟Y和时间参数X的相关程度越显著。
然后漏洞检测模块54的第一判断单元541判断参数获取模块53获取的判断参数是否小于等于第一设定值。
如判断参数小于等于第一设定值,如0.995等,则确定返回时间延迟Y与时间参数X不相关,即检测执行语句在检测服务器上并没有得到执行,因此漏洞检测模块54的漏洞检测单元542确定检测服务器不存在通用网关接口注入漏洞。
如判断参数大于第一设定值,如0.995等,则确定返回时间延迟Y与时间参数X具有较为显著的相关性,即检测服务器执行了该检测执行语句,因此漏洞检测模块54的漏洞检测单元542确定检测服务器存在通用网关接口注入漏洞。
这样即完成了本优选实施例的漏洞检测装置50的漏洞检测过程。
在第一优选实施例的基础上,本优选实施例的漏洞检测方法通过多个检测执行语句的时间参数以及返回时间延迟的相关性,来确定检测执行语句是否在检测服务器上执行,从而确定检测服务器的通用网关接口注入漏洞,该检测准确性高,且可兼容于不同的MySQL数据库。
请参照图9,图9为本发明的漏洞检测装置的第三优选实施例的结构示意图。本优选实施例的漏洞检测装置可使用上述的漏洞检测方法的第三优选实施例进行实施。该漏洞检测装置90包括执行语句构造模块91、时间延迟获取模块92、参数获取模块93以及漏洞检测模块94。
本优选实施例的漏洞检测装置90与第二优选实施例的漏洞检测装置50的区别在于:参数获取模块93用于根据检测执行语句的时间参数以及返回时间延迟,获取检测服务器对应的判断参数以及回归参数;漏洞检测模块94用于根据检测服务器对应的判断参数以及回归参数,确定检测服务器的通用网关接口注入漏洞。
请参照图10,图10为本发明的漏洞检测装置的第三优选实施例的参数获取模块的结构示意图。参数获取模块93包括相关性检测单元931、判断参数获取单元932以及回归参数获取单元933。
相关性检测单元931用于以检测执行语句的时间参数作为自变量,检测执行语句的返回时间延迟作为因变量进行一元线性相关性检测;判断参数获取单元932用于根据检测执行语句的时间参数以及检测执行语句的返回时间延迟的相关系数,设定检测服务器对应的判断参数;回归参数获取单元933用于根据检测执行语句的时间参数以及检测执行语句的返回时间延迟的回归系数,设定检测服务器对应的回归参数。
请参照图11,图11为本发明的漏洞检测装置的第三优选实施例的漏洞检测模块的结构示意图。该漏洞检测模块94包括第一判断单元941、第一漏洞检测单元942、第二判断单元943以及第二漏洞检测单元944。
第一判断单元941用于判断判断参数是否小于等于第一设定值;第一漏洞检测单元942用于如判断参数小于等于第一设定值,则确定检测服务器不存在通用网关接口注入漏洞;第二判断单元943用于如判断参数大于第一设定值,则判断回归参数是否大于第二设定值;第二漏洞检测单元944用于如回归参数大于第二设定值,则确定检测服务器存在通用网关接口注入漏洞;如回归参数小于等于第二设定值,则对回归参数进行有效性检测,并根据检测结果,确定检测服务器的通用网关接口注入漏洞。
本优选实施例的漏洞检测装置90使用时,执行语句构造模块91构造设定数量的检测执行语句,该检测执行语句可为具有sleep函数的SQL执行语句或具有benchmark函数的SQL执行语句等。其中sleep(n1)函数中的n1为该检测执行语句的时间参数,n1为网站服务器执行该语句后的停留时间。其中benchmark(n2,function)函数中的n2为该检测执行语句的时间参数,n2为网站服务器执行标准函数function的次数。如检测服务器执行该检测执行语句,则判断检测服务器具有通用网关接口注入漏洞;如检测服务器未执行该检测执行语句,则判断检测服务器不具有通用网关接口注入漏洞。
为了通过多个不同的检测执行语句检测该检测服务器的通用网关接口注入漏洞,每个检测执行语句对应的时间参数均不同。
时间延迟获取模块92将执行语句构造模块91构造的检测执行语句在较短时间内依次发送至检测服务器,如在一秒内发送五个不同的检测执行语句至检测服务器等。检测服务器会对该检测执行语句进行执行,并返回相应的检测执行结果至漏洞检测装置。时间延迟获取模块92可获取该检测执行语句对应的返回时间延迟。该返回时间延迟由网络波动,服务器性能、负载以及检测执行语句的执行情况造成。
然后时间延迟获取模块92根据检测执行结果的返回时间,获取检测执行语句对应的返回时间延迟,这里的返回时间延迟可由网络波动,服务器性能、负载以及检测执行语句的执行情况造成,由于设定数量的检测执行语句在较短时间内依次发送至检测服务器,因此每个检测执行语句受到的网络波动,服务器性能以及负载的影响大致相同。
如检测服务器不具有通用网关接口注入漏洞,则检测执行语句在检测服务器均未执行,即检测执行语句的执行情况相同时,检测执行语句对应的返回时间延迟基本相同。如检测服务器具有通用网关接口注入漏洞,则检测执行语句的执行情况与检测执行语句对应的时间参数相关,返回时间延迟只会受到检测执行语句对应的时间参数的影响。
随后参数获取模块93的相关性检测单元931以执行语句构造模块91获取的检测执行语句的时间参数作为自变量,时间延迟获取模块92获取的检测执行语句的返回时间延迟作为因变量,进行一元线性相关性检测。
具体为相关性检测单元931根据多个检测执行语句的时间参数以及对应的检测执行语句的返回时间延迟构建以下回归函数:
Yi=β12Xi3
其中Y为检测执行语句的返回时间延迟,X为检测执行语句的时间参数,i为检测执行语句的编号,β1为回归函数的截距,β2为回归函数的回归系数,β3为回归函数的随机误差项。
然后参数获取模块93的判断参数获取单元932根据上述回归函数,获取检测执行语句的时间参数以及检测执行语句的返回时间延迟的相关系数,具体可参见以下公式:
其中r为相关系数,n为检测执行语句的数量。
该相关系数r用于表示检测执行语句的返回时间延迟Y和检测执行语句的时间参数X的相关程度,其中r的取值范围为-1至1,r大于零则表示返回时间延迟Y和时间参数X正相关,r小于0则表示返回时间延迟Y和时间参数X负相关,r等于0则表示返回时间延迟Y和时间参数X不相关,r等于1表示返回时间延迟Y和时间参数X完全正相关,r等于-1表示返回时间延迟Y和时间参数X完全负相关。
随后判断参数获取单元932可根据检测执行语句的时间参数以及检测执行语句的返回时间延迟的相关系数,设定检测服务器对应的判断参数R=(r)2,R的取值范围为0至1,当R=1时,表示返回时间延迟Y和时间参数X完全相关,返回时间延迟Y的变化完全由时间参数X的变化造成,R越接近1,则返回时间延迟Y和时间参数X的相关程度越显著。
参数获取模块93的回归参数获取单元933获取检测执行语句的时间参数以及检测执行语句的返回时间延迟的回归系数,即相应的回归函数的回归系数β2,并将回归系数β2设定为检测服务器对应的回归参数。回归系数β2表示返回时间延迟随着时间参数的变化程度,回归系数β2越大,表示返回时间延迟随时间参数的变化程度越明显。
然后漏洞检测模块94的第一判断单元941判断参数获取模块93获取的判断参数是否小于等于第一设定值。
如判断参数小于等于第一设定值,如0.995等,则确定返回时间延迟Y与时间参数X不相关,即检测执行语句在检测服务器上并没有得到执行,因此漏洞检测模块94的第一漏洞检测单元942确定检测服务器不存在通用网关接口注入漏洞。
如判断参数大于第一设定值,如0.995等,则确定返回时间延迟Y与时间参数X具有较为显著的相关性,但是当检测服务器对应的回归参数较小且检测执行语句的时间参数较为接近时,相关性检测单元931获取的回归函数可能是错误的。
因此这里漏洞检测模块94的第二判断单元943继续判断相应的回归参数是否大于第二设定值,如0.5。
如回归参数大于第二设定值,则确定时间参数X对返回时间延迟Y的影响较大,即检测服务器执行了该检测执行语句,因此漏洞检测模块94的第二漏洞检测单元944确定检测服务器存在通用网关接口注入漏洞。
如回归参数小于等于第二设定值,则漏洞检测模块94的第二漏洞检测单元944对回归参数进行有效性检测,并根据检测结果,确定检测服务器的通用网关接口注入漏洞,有效性检测的过程具体为:
按执行语句构造模块91构造的检测执行语句中的时间参数的最大值设定一检测时间参数,该检测时间参数可为检测执行语句中的时间参数的最大值的n倍(如两倍)。以该检测时间参数构造一检测执行语句。
然后将该检测执行语句发送至检测服务器进行执行,以获取相应的第一检测返回时间延迟;再通过该检测时间参数以及相应的回归函数计算第二检测返回时间延迟。
如第一检测返回时间延迟和第二检测返回时间延迟的误差小于设定值,则判断回归参数有效,即检测服务器执行了该检测执行语句,因此确定检测服务器存在通用网关接口注入漏洞。
如第一检测返回时间延迟和第二检测返回时间延迟的误差大于等于设定值,则判断回归参数无效,即检测执行语句在检测服务器上并没有得到执行,因此确定检测服务器不存在通用网关接口注入漏洞。该设定值可根据检测具体情况进行设定。
这样即完成了本优选实施例的漏洞检测装置的漏洞检测过程。
在第二优选实施例的基础上,本优选实施例的漏洞检测装置通过对回归函数的回归系数进行有效性判断,进一步提高了检测服务器的通用网关接口注入漏洞的检测准确性。
下面通过一具体实施例说明本发明的漏洞检测方法及漏洞检测装置的工作原理。在本具体实施例中使用CGI漏洞检测终端来检测网站服务器的CGI漏洞。
一、CGI漏洞检测终端构造五组具有benchmark函数的SQL检测执行语句,并将该五组SQL检测执行语句发送至网站服务器,以检测CGI漏洞。其中五组SQL检测执行语句的时间参数分别为0、1、2、3、4。
二、CGI漏洞检测终端接收网站服务器返回的检测执行结果,以获取相应的返回时间延迟,五组SQL检测执行语句对应的返回时间延迟为0.011318、0.589371、1.167745、1.746124、2.324027。
三、CGI漏洞检测终端对五组SQL检测执行语句的时间参数以及返回时间延迟进行一元线性回归分析,获取相应的回归曲线如图12所示,其中时间参数为X轴,返回时间延迟为Y轴。CGI漏洞检测终端判断网站服务器的判断参数是否大于第一设定值。其中网站服务器的判断参数R=0.9999,大于第一设定值0.995,因此这里判断时间参数以及返回时间延迟具有较为显著的相关性,因此CGI漏洞检测终端判断网站服务器可能存在通用网关接口注入漏洞。
四、为了进一步防止误报,CGI漏洞检测终端继续判断网站服务器的回归参数是否大于第二设定值。这里第二设定值设为0.5,由于网站服务器的回归参数0.582大于第二设定值,即时间参数对返回时间延迟的影响较大,因此进一步确定网站服务器存在通用网关接口注入漏洞。
五、如服务器的回归参数小于等于第二设定值,则时间参数对返回时间延迟的影响较小,因此上述一元线性回归分析获取的回归曲线可能准确性较差。
这里CGI漏洞检测终端以时间参数=8构造一SQL检测执行语句发送至网站服务器进行执行,并接收相应的检测执行结果,以获取相应的第一返回时间延迟。同时CGI漏洞检测终端将时间参数=8代入到回归曲线对应的回归函数y=0.582x中获取第二返回时间延迟。
如第一返回时间延迟和第二返回时间延迟误差小于设定值,如小于0.1,则判断回归曲线基本是准确的,时间参数以及返回时间延迟确实具有较为显著的相关性。因此CGI漏洞检测终端确定服务器存在通用网关接口注入漏洞。
如第一返回时间延迟和第二返回时间延迟误差大于设定值,即时间参数以及返回时间延迟不具有相关性;同时由于服务器的回归参数较小,即通过回归参数也判断时间参数对返回时间延迟的几乎无影响,因此CGI漏洞检测终端确定服务器不存在通用网关接口注入漏洞。
这样即完成了本具体实施例的漏洞检测方法及漏洞检测装置的漏洞检测过程。
本发明的漏洞检测方法及漏洞检测装置通过多个检测执行语句的时间参数以及返回时间延迟,来确定检测服务器的漏洞,检测准确性高,且可被所有的MySQL数据库支持,兼容性强;解决了现有的漏洞检测方法及漏洞检测装置的检测准确性较低或兼容性较差的技术问题。
如本申请所使用的术语“组件”、“模块”、“系统”、“接口”、“进程”等等一般地旨在指计算机相关实体:硬件、硬件和软件的组合、软件或执行中的软件。例如,组件可以是但不限于是运行在处理器上的进程、处理器、对象、可执行应用、执行的线程、程序和/或计算机。通过图示,运行在控制器上的应用和该控制器二者都可以是组件。一个或多个组件可以有在于执行的进程和/或线程内,并且组件可以位于一个计算机上和/或分布在两个或更多计算机之间。
而且,要求保护的主题可以被实现为使用标准编程和/或工程技术产生软件、固件、硬件或其任意组合以控制计算机实现所公开的主题的方法、装置或制造品。本文所使用的术语“制造品”旨在包含可从任意计算机可读设备、载体或介质访问的计算机程序。当然,本领域技术人员将认识到可以对该配置进行许多修改,而不脱离要求保护的主题的范围或精神。
图13和随后的讨论提供了对实现本发明所述的漏洞检测装置所在的电子设备的工作环境的简短、概括的描述。图13的工作环境仅仅是适当的工作环境的一个实例并且不旨在建议关于工作环境的用途或功能的范围的任何限制。实例电子设备1312包括但不限于个人计算机、服务器计算机、手持式或膝上型设备、移动设备(比如移动电话、个人数字助理(PDA)、媒体播放器等等)、多处理器系统、消费型电子设备、小型计算机、大型计算机、包括上述任意系统或设备的分布式计算环境,等等。
尽管没有要求,但是在“计算机可读指令”被一个或多个电子设备执行的通用背景下描述实施例。计算机可读指令可以经由计算机可读介质来分布(下文讨论)。计算机可读指令可以实现为程序模块,比如执行特定任务或实现特定抽象数据类型的功能、对象、应用编程接口(API)、数据结构等等。典型地,该计算机可读指令的功能可以在各种环境中随意组合或分布。
图13图示了包括本发明的漏洞检测装置的一个或多个实施例的电子设备1312的实例。在一种配置中,电子设备1312包括至少一个处理单元1316和存储器1318。根据电子设备的确切配置和类型,存储器1318可以是易失性的(比如RAM)、非易失性的(比如ROM、闪存等)或二者的某种组合。该配置在图13中由虚线1314图示。
在其他实施例中,电子设备1312可以包括附加特征和/或功能。例如,设备1312还可以包括附加的存储装置(例如可移除和/或不可移除的),其包括但不限于磁存储装置、光存储装置等等。这种附加存储装置在图13中由存储装置1320图示。在一个实施例中,用于实现本文所提供的一个或多个实施例的计算机可读指令可以在存储装置1320中。存储装置1320还可以存储用于实现操作系统、应用程序等的其他计算机可读指令。计算机可读指令可以载入存储器1318中由例如处理单元1316执行。
本文所使用的术语“计算机可读介质”包括计算机存储介质。计算机存储介质包括以用于存储诸如计算机可读指令或其他数据之类的信息的任何方法或技术实现的易失性和非易失性、可移除和不可移除介质。存储器1318和存储装置1320是计算机存储介质的实例。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字通用盘(DVD)或其他光存储装置、盒式磁带、磁带、磁盘存储装置或其他磁存储设备、或可以用于存储期望信息并可以被电子设备1312访问的任何其他介质。任意这样的计算机存储介质可以是电子设备1312的一部分。
电子设备1312还可以包括允许电子设备1312与其他设备通信的通信连接1326。通信连接1326可以包括但不限于调制解调器、网络接口卡(NIC)、集成网络接口、射频发射器/接收器、红外端口、USB连接或用于将电子设备1312连接到其他电子设备的其他接口。通信连接1326可以包括有线连接或无线连接。通信连接1326可以发射和/或接收通信媒体。
术语“计算机可读介质”可以包括通信介质。通信介质典型地包含计算机可读指令或诸如载波或其他传输机构之类的“己调制数据信号”中的其他数据,并且包括任何信息递送介质。术语“己调制数据信号”可以包括这样的信号:该信号特性中的一个或多个按照将信息编码到信号中的方式来设置或改变。
电子设备1312可以包括输入设备1324,比如键盘、鼠标、笔、语音输入设备、触摸输入设备、红外相机、视频输入设备和/或任何其他输入设备。设备1312中也可以包括输出设备1322,比如一个或多个显示器、扬声器、打印机和/或任意其他输出设备。输入设备1324和输出设备1322可以经由有线连接、无线连接或其任意组合连接到电子设备1312。在一个实施例中,来自另一个电子设备的输入设备或输出设备可以被用作电子设备1312的输入设备1324或输出设备1322。
电子设备1312的组件可以通过各种互连(比如总线)连接。这样的互连可以包括外围组件互连(PCI)(比如快速PCI)、通用串行总线(USB)、火线(IEEE1394)、光学总线结构等等。在另一个实施例中,电子设备1312的组件可以通过网络互连。例如,存储器1318可以由位于不同物理位置中的、通过网络互连的多个物理存储器单元构成。
本领域技术人员将认识到,用于存储计算机可读指令的存储设备可以跨越网络分布。例如,可经由网络1328访问的电子设备1330可以存储用于实现本发明所提供的一个或多个实施例的计算机可读指令。电子设备1312可以访问电子设备1330并且下载计算机可读指令的一部分或所有以供执行。可替代地,电子设备1312可以按需要下载多条计算机可读指令,或者一些指令可以在电子设备1312处执行并且一些指令可以在电子设备1330处执行。
本文提供了实施例的各种操作。在一个实施例中,所述的一个或多个操作可以构成一个或多个计算机可读介质上存储的计算机可读指令,其在被电子设备执行时将使得计算设备执行所述操作。描述一些或所有操作的顺序不应当被解释为暗示这些操作必需是顺序相关的。本领域技术人员将理解具有本说明书的益处的可替代的排序。而且,应当理解,不是所有操作必需在本文所提供的每个实施例中存在。
而且,本文所使用的词语“优选的”意指用作实例、示例或例证。奉文描述为“优选的”任意方面或设计不必被解释为比其他方面或设计更有利。相反,词语“优选的”的使用旨在以具体方式提出概念。如本申请中所使用的术语“或”旨在意指包含的“或”而非排除的“或”。即,除非另外指定或从上下文中清楚,“X使用A或B”意指自然包括排列的任意一个。即,如果X使用A;X使用B;或X使用A和B二者,则“X使用A或B”在前述任一示例中得到满足。
而且,尽管已经相对于一个或多个实现方式示出并描述了本公开,但是本领域技术人员基于对本说明书和附图的阅读和理解将会想到等价变型和修改。本公开包括所有这样的修改和变型,并且仅由所附权利要求的范围限制。特别地关于由上述组件(例如元件、资源等)执行的各种功能,用于描述这样的组件的术语旨在对应于执行所述组件的指定功能(例如其在功能上是等价的)的任意组件(除非另外指示),即使在结构上与执行本文所示的本公开的示范性实现方式中的功能的公开结构不等同。此外,尽管本公开的特定特征已经相对于若干实现方式中的仅一个被公开,但是这种特征可以与如可以对给定或特定应用而言是期望和有利的其他实现方式的一个或多个其他特征组合。而且,就术语“包括”、“具有”、“含有”或其变形被用在具体实施方式或权利要求中而言,这样的术语旨在以与术语“包含”相似的方式包括。
本发明实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。上述提到的存储介质可以是只读存储器,磁盘或光盘等。上述的各装置或系统,可以执行相应方法实施例中的方法。
综上所述,虽然本发明已以优选实施例揭露如上,但上述优选实施例并非用以限制本发明,本领域的普通技术人员,在不脱离本发明的精神和范围内,均可作各种更动与润饰,因此本发明的保护范围以权利要求界定的范围为准。

Claims (8)

1.一种漏洞检测方法,其特征在于,包括:
构造设定数量的检测执行语句,其中每个所述检测执行语句对应的时间参数均不同;
将所述检测执行语句发送至检测服务器,以获取所述检测执行语句对应的返回时间延迟;
根据所述检测执行语句的时间参数以及返回时间延迟,获取所述检测服务器对应的判断参数以及回归参数;以及
根据所述检测服务器对应的判断参数以及回归参数,确定所述检测服务器的通用网关接口注入漏洞;
所述根据所述检测执行语句的时间参数以及返回时间延迟,获取所述检测服务器对应的判断参数以及回归参数的步骤包括:
以所述检测执行语句的时间参数作为自变量,所述检测执行语句的返回时间延迟作为因变量进行一元线性相关性检测;构建以下回归函数:
Yi=β12Xi3
其中Y为检测执行语句的返回时间延迟,X为检测执行语句的时间参数,i为检测执行语句的编号,β1为回归函数的截距,β2为回归函数的回归系数,β3为回归函数的随机误差项;
根据所述检测执行语句的时间参数以及所述检测执行语句的返回时间延迟的相关系数,设定所述检测服务器对应的判断参数;参见以下公式:
其中r为相关系数,n为检测执行语句的数量;
该相关系数r用于表示检测执行语句的返回时间延迟Y和检测执行语句的时间参数X的相关程度,其中r的取值范围为-1至1;判断参数R=(r)2
根据所述检测执行语句的时间参数以及所述检测执行语句的返回时间延迟的回归系数,设定所述检测服务器对应的回归参数。
2.根据权利要求1所述的漏洞检测方法,其特征在于,所述将所述检测执行语句发送至检测服务器,以获取所述检测执行语句对应的返回时间延迟的步骤包括:
将所述检测执行语句发送至检测服务器,以接收所述检测服务器返回的检测执行结果;以及
根据所述检测执行结果的返回时间,获取所述检测执行语句对应的返回时间延迟。
3.根据权利要求1所述的漏洞检测方法,其特征在于,所述根据所述检测服务器对应的判断参数以及回归参数,检测所述检测服务器的通用网关接口注入漏洞的步骤包括:
判断所述判断参数是否小于等于第一设定值;
如所述判断参数小于等于第一设定值,则确定所述检测服务器不存在通用网关接口注入漏洞;
如所述判断参数大于第一设定值,则判断所述回归参数是否大于第二设定值;
如所述回归参数大于第二设定值,则确定所述检测服务器存在通用网关接口注入漏洞;以及
如所述回归参数小于等于第二设定值,则对所述回归参数进行有效性检测,并根据检测结果,确定所述检测服务器的通用网关接口注入漏洞。
4.根据权利要求3所述的漏洞检测方法,其特征在于,所述根据检测结果,确定所述检测服务器的通用网关接口注入漏洞的步骤包括:
如所述检测结果为所述回归参数有效,则确定所述检测服务器存在通用网关接口注入漏洞;以及
如所述检测结果为所述回归参数无效,则确定所述检测服务器不存在通用网关接口注入漏洞。
5.一种漏洞检测装置,其特征在于,包括:
执行语句构造模块,用于构造设定数量的检测执行语句,其中每个所述检测执行语句对应的时间参数均不同;
时间延迟获取模块,用于将所述检测执行语句发送至检测服务器,以获取所述检测执行语句对应的返回时间延迟;
参数获取模块,用于根据所述检测服务器对应的判断参数以及回归参数,确定所述检测服务器的通用网关接口注入漏洞;以及
漏洞检测模块,用于根据所述检测服务器对应的判断参数以及回归参数,确定所述检测服务器的通用网关接口注入漏洞;
所述参数获取模块包括:
相关性检测单元,用于以所述检测执行语句的时间参数作为自变量,所述检测执行语句的返回时间延迟作为因变量进行一元线性相关性检测;构建以下回归函数:
Yi=β12Xi3
其中Y为检测执行语句的返回时间延迟,X为检测执行语句的时间参数,i为检测执行语句的编号,β1为回归函数的截距,β2为回归函数的回归系数,β3为回归函数的随机误差项;
判断参数获取单元,用于根据所述检测执行语句的时间参数以及所述检测执行语句的返回时间延迟的相关系数,设定所述检测服务器对应的判断参数;参见以下公式:
其中r为相关系数,n为检测执行语句的数量;
该相关系数r用于表示检测执行语句的返回时间延迟Y和检测执行语句的时间参数X的相关程度,其中r的取值范围为-1至1;判断参数R=(r)2
回归参数获取单元,用于根据所述检测执行语句的时间参数以及所述检测执行语句的返回时间延迟的回归系数,设定所述检测服务器对应的回归参数。
6.根据权利要求5所述的漏洞检测装置,其特征在于,所述时间延迟获取模块包括:
执行语句发送单元,用于将所述检测执行语句发送至检测服务器,以接收所述检测服务器返回的检测执行结果;以及
时间延迟获取单元,用于根据所述检测执行结果的返回时间,获取所述检测执行语句对应的返回时间延迟。
7.根据权利要求5所述的漏洞检测装置,其特征在于,所述漏洞检测模块包括:
第一判断单元,用于判断所述判断参数是否小于等于第一设定值;以及
第一漏洞检测单元,用于如所述判断参数小于等于第一设定值,则确定所述检测服务器不存在通用网关接口注入漏洞;
第二判断单元,用于如所述判断参数大于第一设定值,则判断所述回归参数是否大于第二设定值;以及
第二漏洞检测单元,用于如所述回归参数大于第二设定值,则确定所述检测服务器存在通用网关接口注入漏洞;如所述回归参数小于等于第二设定值,则对所述回归参数进行有效性检测,并根据检测结果,确定所述检测服务器的通用网关接口注入漏洞。
8.根据权利要求7所述的漏洞检测装置,其特征在于,所述第二漏洞检测单元具体用于如所述检测结果为所述回归参数有效,则确定所述检测服务器存在通用网关接口注入漏洞;如所述检测结果为所述回归参数无效,则确定所述检测服务器不存在通用网关接口注入漏洞。
CN201610103718.2A 2016-02-25 2016-02-25 漏洞检测方法以及漏洞检测装置 Active CN107122665B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610103718.2A CN107122665B (zh) 2016-02-25 2016-02-25 漏洞检测方法以及漏洞检测装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610103718.2A CN107122665B (zh) 2016-02-25 2016-02-25 漏洞检测方法以及漏洞检测装置

Publications (2)

Publication Number Publication Date
CN107122665A CN107122665A (zh) 2017-09-01
CN107122665B true CN107122665B (zh) 2019-08-13

Family

ID=59717548

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610103718.2A Active CN107122665B (zh) 2016-02-25 2016-02-25 漏洞检测方法以及漏洞检测装置

Country Status (1)

Country Link
CN (1) CN107122665B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110363008B (zh) * 2019-07-11 2021-08-06 北京长亭未来科技有限公司 一种sql时间盲注的漏洞检测方法、装置和存储设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103902912A (zh) * 2012-12-26 2014-07-02 深圳市腾讯计算机系统有限公司 网页漏洞的检测方法和装置
CN105072095A (zh) * 2015-07-20 2015-11-18 北京神州绿盟信息安全科技股份有限公司 一种检测sql注入漏洞的方法及装置
CN105306445A (zh) * 2008-05-22 2016-02-03 亿贝韩国有限公司 用于检测服务器的漏洞的系统和方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105306445A (zh) * 2008-05-22 2016-02-03 亿贝韩国有限公司 用于检测服务器的漏洞的系统和方法
CN103902912A (zh) * 2012-12-26 2014-07-02 深圳市腾讯计算机系统有限公司 网页漏洞的检测方法和装置
CN105072095A (zh) * 2015-07-20 2015-11-18 北京神州绿盟信息安全科技股份有限公司 一种检测sql注入漏洞的方法及装置

Also Published As

Publication number Publication date
CN107122665A (zh) 2017-09-01

Similar Documents

Publication Publication Date Title
US20180322200A1 (en) Analytics based on pipes programming model
CN106789837B (zh) 网络异常行为检测方法及检测装置
KR101463678B1 (ko) 신뢰되지 않는 컴퓨팅 노드들에 의해 수행된 작업의 검증
CN107122295B (zh) 测试用例脚本的生成方法和装置
CN109376078A (zh) 移动应用的测试方法、终端设备及介质
CN108769070A (zh) 一种越权漏洞检测方法及装置
CN104918119B (zh) 基于iOS浏览器的视频处理方法及视频处理装置
US8838430B1 (en) Detection of memory access violation in simulations
CN106371999B (zh) 程序代码测试方法及装置
WO2019144548A1 (zh) 安全测试方法、装置、计算机设备和存储介质
CN104462985A (zh) bat漏洞的检测方法以及装置
CN110287696A (zh) 一种反弹shell进程的检测方法、装置和设备
US9026612B2 (en) Generating a custom parameter rule based on a comparison of a run-time value to a request URL
CN112417798A (zh) 一种时序测试方法、装置、电子设备及存储介质
CN103902912A (zh) 网页漏洞的检测方法和装置
CN104375935A (zh) Sql注入攻击的测试方法和装置
CN111064735A (zh) 一种电力信息系统sql注入漏洞检测方法及系统
CN114297665A (zh) 基于深度学习的智能合约漏洞检测方法和装置
CN107122665B (zh) 漏洞检测方法以及漏洞检测装置
CN117076330B (zh) 一种访存验证方法、系统、电子设备及可读存储介质
CN106502707B (zh) 代码生成方法及装置
CN110766402B (zh) 交易顺序依赖漏洞检测方法、系统、电子装置及存储介质
CN116684120A (zh) 基于区块链的数据可信验证方法、装置、设备及存储介质
CN107392027A (zh) 一种网站漏洞测试方法、测试系统、电子设备及存储介质
CN110209572A (zh) 用户界面测试方法、用户界面测试系统及终端

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20231227

Address after: 518057 Tencent Building, No. 1 High-tech Zone, Nanshan District, Shenzhen City, Guangdong Province, 35 floors

Patentee after: TENCENT TECHNOLOGY (SHENZHEN) Co.,Ltd.

Patentee after: TENCENT CLOUD COMPUTING (BEIJING) Co.,Ltd.

Address before: 2, 518000, East 403 room, SEG science and Technology Park, Zhenxing Road, Shenzhen, Guangdong, Futian District

Patentee before: TENCENT TECHNOLOGY (SHENZHEN) Co.,Ltd.

TR01 Transfer of patent right