CN105072095A - 一种检测sql注入漏洞的方法及装置 - Google Patents

一种检测sql注入漏洞的方法及装置 Download PDF

Info

Publication number
CN105072095A
CN105072095A CN201510428942.4A CN201510428942A CN105072095A CN 105072095 A CN105072095 A CN 105072095A CN 201510428942 A CN201510428942 A CN 201510428942A CN 105072095 A CN105072095 A CN 105072095A
Authority
CN
China
Prior art keywords
attack
sql
time
vector
delay
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.)
Granted
Application number
CN201510428942.4A
Other languages
English (en)
Other versions
CN105072095B (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.)
Shenzhou Lvmeng Chengdu Technology Co ltd
Nsfocus Technologies Inc
Nsfocus Technologies Group Co Ltd
Original Assignee
NSFOCUS Information Technology Co Ltd
Beijing NSFocus Information Security Technology 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 NSFOCUS Information Technology Co Ltd, Beijing NSFocus Information Security Technology Co Ltd filed Critical NSFOCUS Information Technology Co Ltd
Priority to CN201510428942.4A priority Critical patent/CN105072095B/zh
Publication of CN105072095A publication Critical patent/CN105072095A/zh
Application granted granted Critical
Publication of CN105072095B publication Critical patent/CN105072095B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1433Vulnerability analysis
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]

Abstract

本发明公开了一种检测SQL注入漏洞的方法及装置,用于提高漏洞的检测准确率,以及降低检测时web应用漏洞扫描系统的运行负荷。该方法为:根据实际的响应时间和攻击向量中期望的延时时间所计算出的相似度进行漏洞存在与否的判定。由于在相近时刻内响应时间受到的网络影响基本一致,在计算期望的延时时间和实际的响应时间的相似度时,相近的变化幅度不会对相似度的计算结果造成决定性的影响,所以不会影响漏洞存在判定的准确性。因此,可以保证在不同的网络情况及不同的目标环境下,程序能够快速准确的检测出基于时间的SQL注入漏洞,同时,也有效降低了判定SQL注入漏洞给web应用漏洞扫描系统带来的运行负荷。

Description

一种检测SQL注入漏洞的方法及装置
技术领域
本发明涉及网络安全技术,特别涉及一种检测SQL注入漏洞的方法及装置。
背景技术
结构化查询语言(StructuredQueryLanguage,SQL)注入是web应用安全中的常见漏洞。在存在SQL注入的web应用中,攻击者可利用该web应用的代码缺陷,通过将SQL命令插入到任何能够影响数据库查询的应用程序参数值中,欺骗服务器执行插入的恶意SQL命令,从而获取该web应用的敏感信息甚至控制该web应用的整个服务器。因此,需要设计有效的SQL注入检测方法来检测SQL注入漏洞,以防止SQL注入攻击。
实际应用中,SQL注入检测方法也是SQL注入攻击方法,即是采用设定的SQL注入攻击方法对目标服务器进行攻击,根据目标服务器的反馈判定是否存在SQL注入漏洞。
SQL盲注一般分为3类:布尔型、时间型和错误注入型。
简言之,目前基于时间的SQL注入漏洞检测存在的问题如下:
1)在有限的检测时间内,无法获取大量数据去评估当前的网络情况;
2)在不考虑时间消耗的情况下,获取大量数据需要发送大量的请求,在多并发扫描的情况下会对目标服务器站点造成很大压力,同时消耗资源量增大;
3)由于扫描过程中网络的不稳定性,无法设计一个合理有效的响应时间区间预估算法;
4)为保证扫描结果的准确性,均多次使用延时函数进行判断,而且单次的延时时间都较长,导致整体扫描耗时很长;
5)对于数据库在执行含有sleep()、delay()等延时函数的攻击向量时,执行了攻击向量中所描述时间的整数倍的情况,传统的基于时间区间的判断方法会造成漏报;
6)对于使用含有banchmark()等重复执行特征表达式的攻击向量做基于时间的SQL注入漏洞检测时,由于不同目标环境执行一次特征表达式的时间不是固定的,因此,传统的基于时间区间的判断方法极易出现误报。
由此可见,现有的时间型SQL注入漏洞检测方法不能够快速、准确的进行基于时间的SQL注入漏洞的检测。而且,使用现有的检测方法经常会出现漏报、误报,严重影响web应用漏洞扫描系统整体的检测性能。
发明内容
本发明实施例提供一种检测SQL注入漏洞的方法及装置,用以提高时间型SQL注入漏洞的检测准确率,以及降低检测时web应用漏洞扫描系统的运行负荷。
本发明实施例提供的具体技术方案如下:
一种检测SQL注入漏洞的方法,包括:
确定待测目标,并根据选定的延时矩阵中包含的第一延时指示和第二延时指示,分别生成第一SQL攻击向量和第二SQL攻击向量;
针对待测目标,依次发送第一SQL攻击向量和第二SQL攻击向量,并记录响应矩阵,所述响应矩阵中分别记录有对应第一SQL攻击向量的第一响应时间,以及对应第二SQL攻击向量的第二响应时间;
计算所述延时矩阵和所述响应矩阵的相似度,确定所述相似度达到设定阈值时,判定存在时间型SQL注入漏洞。
这样,可以根据实际的响应时间和攻击向量中期望的延时时间所计算出的相似度进行漏洞存在与否的判定。对于使用延时函数的攻击向量,不需要再使用较长的延时时间,也不需要考虑实际的延时时间是否和期望的延时时间一致;对于使用重复执行特征表达式的攻击向量,不需要考虑不同目标单次执行的时间差。而且,由于在相近时刻内响应时间受到的网络影响基本一致,在计算期望的延时时间和实际的响应时间的相似度时,相近的变化幅度不会对相似度的计算结果造成决定性的影响,所以不会影漏洞存在判定的准确性。因此,可以保证在不同的网络情况及不同的目标环境下,程序能够快速准确的检测出基于时间的SQL注入漏洞,同时,也有效降低了判定SQL注入漏洞给web应用漏洞扫描系统带来的运行负荷。
较佳的,所述第一延时指示和第二延时指示中,直接记录了需要执行的延时时长,或者,记录了表示特征表达式重复执行次数的影响因子,以间接指示延时时长。
较佳的,针对待测目标,依次发送第一SQL攻击向量和第二SQL攻击向量,包括:
基于所述待测目标表征的目标链接以及待检测对象,以及基于所述第一SQL攻击向量和第二SQL攻击向量,分别生成第一攻击请求和第二攻击请求;
依次向所述待测目标发送所述第一攻击请求和第二攻击请求,其中,在接收到所述第一攻击请求的响应时,再发送所述第二攻击请求。
较佳的,记录所述响应矩阵之后,在计算所述延时矩阵和所述响应矩阵的相似度之前,进一步包括:
将所述第二响应时间与所述第二延时指示表征的延时时长进行比较,若确定所述第二响应时间为所述第二延时指示表征的延时时长的整数倍,则判定能够执行相似度判断;其中,第二延时指示对应的延时时长大于第一延时指示对应的延时时长。
较佳的,进一步包括:
若确定所述第二响应时间不为所述第二延时指示表征的延时时长的整数倍,则判定不存在时间型SQL注入漏洞。
较佳的,计算所述延时矩阵和所述响应矩阵的相似度,包括:
采用以下公式计算所述延时矩阵和响应矩阵的相似度:
S = T · R ( T · T ) * ( R · R ) = t 0 r 0 + t 1 r 1 ( t 0 2 + t 1 2 ) * ( r 0 2 + r 1 2 )
其中,t0表示第一延时指示,t1表示第二延时指示,r0表示对应第一SQL攻击向量记录的第一响应时间,r1表示对应第二SQL攻击向量记录的第二响应时间。
一种检测SQL注入漏洞的装置,包括:
生成单元,用于确定待测目标,并根据选定的延时矩阵中包含的第一延时指示和第二延时指示,分别生成第一SQL攻击向量和第二SQL攻击向量;
通信单元,用于针对待测目标,依次发送第一SQL攻击向量和第二SQL攻击向量,并记录响应矩阵,所述响应矩阵中分别记录有对应第一SQL攻击向量的第一响应时间,以及对应第二SQL攻击向量的第二响应时间;
判定单元,用于计算所述延时矩阵和所述响应矩阵的相似度,确定所述相似度达到设定阈值时,判定存在时间型SQL注入漏洞。
这样,可以根据实际的响应时间和攻击向量中期望的延时时间所计算出的相似度进行漏洞存在与否的判定。对于使用延时函数的攻击向量,不需要再使用较长的延时时间,也不需要考虑实际的延时时间是否和期望的延时时间一致;对于使用重复执行特征表达式的攻击向量,不需要考虑不同目标单次执行的时间差。而且,由于在相近时刻内响应时间受到的网络影响基本一致,在计算期望的延时时间和实际的响应时间的相似度时,相近的变化幅度不会对相似度的计算结果造成决定性的影响,所以不会影漏洞存在判定的准确性。因此,可以保证在不同的网络情况及不同的目标环境下,程序能够快速准确的检测出基于时间的SQL注入漏洞,同时,也有效降低了判定SQL注入漏洞给web应用漏洞扫描系统带来的运行负荷。
较佳的,所述生成单元选定的所述第一延时指示和第二延时指示中,直接记录了需要执行的延时时长,或者,记录了表示特征表达式重复执行次数的影响因子,以间接指示延时时长。
较佳的,针对待测目标,依次发送第一SQL攻击向量和第二SQL攻击向量时,所述通信单元用于:
基于所述待测目标表征的目标链接以及待检测对象,以及基于所述第一SQL攻击向量和第二SQL攻击向量,分别生成第一攻击请求和第二攻击请求;
依次向所述待测目标发送所述第一攻击请求和第二攻击请求,其中,在接收到所述第一攻击请求的响应时,再发送所述第二攻击请求。
较佳的,记录所述响应矩阵之后,在计算所述延时矩阵和所述响应矩阵的相似度之前,所述判定单元进一步用于:
将所述第二响应时间与所述第二延时指示表征的延时时长进行比较,若确定所述第二响应时间为所述第二延时指示表征的延时时长的整数倍,则判定能够执行相似度判断;其中,第二延时指示对应的延时时长大于第一延时指示对应的延时时长。
较佳的,所述判定单元进一步用于:
若确定所述第二响应时间不为所述第二延时指示表征的延时时长的整数倍,则判定不存在时间型SQL注入漏洞。
较佳的,计算所述延时矩阵和所述响应矩阵的相似度时,所述判定单元用于:
采用以下公式计算所述延时矩阵和响应矩阵的相似度:
S = T · R ( T · T ) * ( R · R ) = t 0 r 0 + t 1 r 1 ( t 0 2 + t 1 2 ) * ( r 0 2 + r 1 2 )
其中,t0表示第一延时指示,t1表示第二延时指示,r0表示对应第一SQL攻击向量记录的第一响应时间,r1表示对应第二SQL攻击向量记录的第二响应时间。
附图说明
图1为本申请实施例中检测时间型SQL注入漏洞流程示意图;
图2为本申请实施例中检测时间型SQL注入漏洞详细流程图;
图3为本申请实施例中检测装置功能结构示意图。
具体实施方式
本发明为了解决上述问题,使得可以通过程序自动、快速、准确的检测出基于时间类型的SQL注入,提出了一种环境自适应的SQL时间注入检测方法。该方法为:先后发送两次携带有延时指示的SQL攻击向量,再分别记录对应的响应时间,接着,计算两个SQL攻击向量组成的延时矩阵和两个响应时间组成的响应矩阵之间的相似度,确定相似度达到阈值后,判定存在时间型SQL注入漏洞。
下面结合附图对本发明优选的实施方式进行详细说明。
本发明实施例中,为了适应不同的网络状况及不同的目标环境,设计了一个环境自适应的SQL时间注入检测方法,参阅图1所示,具体步骤如下:
步骤100:确定待测目标,并根据选定的延时矩阵中包含的第一延时指示和第二延时指示,分别生成第一SQL攻击向量和第二SQL攻击向量。
具体的,本申请实施例中,可以采用网络爬虫技术,获取待检测的目标链接及待检测参数,所谓的待检测参数,可以是待检测的目标链接中的参数,可以是HTTP请求头中的参数,也可以是POST类型的HTTP请求的postdata中的参数等等。为了确保待检测参数处不存在SQL注入,本实施例中,需要针对每一个待检测参数进行检测,因此,步骤100中描述的待测目标是指目标链接的一个待检测参数。
然后,选取延时矩阵,记为T=[t0,t1]T,构造SQL时间注入检测通用攻击向量(即SQL攻击向量)time_inj_F(T),具体的,攻击向量矩阵如下:
time_inj_F(T)=[time_inj_F(t0),time_inj_F(t1)]T
其中,time_inj_F()表示选取的用于检测SQL时间注入的函数,ti表示延时指示,如:t0表示第一SQL攻击向量使用的第一延时指示,t1表示第二SQL攻击向量使用的第二延时指示;其中,所谓的延时指示可以采用两种实现方式:
第一种实现方式为:延时指示中记录了需要执行的延时时长(即直接记录了延时时长的取值);
第二种实现方式为:延时指示记录了表示特征表达式重复执行次数的影响因子(即间接指示了延时时长的取值)。
在第二种实现方式下,程序内部设置了指定的特征表达式,进行SQL攻击时,只需要设置重复执行次数的影响因子(如:2),则程序内部会将影响因子乘以设定系数得到重复执行次数,如:2×10000=20000次,那么目标服务器在执行数据库查询语句时,数据库会将指定的特征表达式执行上述重复执行次数,从而造成目标服务器返回响应内容时在时间上的相应延迟。
显然,无论是采用第一种实现方式,还是采用第二种实现方式,延时指示均可以表征一个设定的延时时长(直接表征或者间接表征)
例如,当time_inj_F()选择为sleep()或者delay()等延时函数的时候,ti就是期望数据库延时的时长,以秒为单位;当选择为banchmark()等函数时,ti就是期望特征表达式被重复执行次数的影响因子,i=0,1。
通常情况下,t0,t1互不相同,较佳的。ti∈{1,2},以秒为单位,即,t0=1秒,t1=2秒。
步骤110:针对待测目标,依次发送第一SQL攻击向量和第二SQL攻击向量,并记录响应矩阵,该响应矩阵中分别记录有对应第一SQL攻击向量的第一响应时间,以及对应第二SQL攻击向量的第二响应时间。
较佳的,在执行步骤110时,可以基于待测目标表征的目标链接以及待检测对象,以及基于第一SQL攻击向量和第二SQL攻击向量,分别生成第一攻击请求和第二攻击请求,然后,依次向待测目标发送第一攻击请求和第二攻击请求,其中,可选的,在接收到第一攻击请求的响应时,再发送第二攻击请求。
具体的,在执行步骤110时,可以根据当前待检测的目标链接和待检测对象,构造含有攻击向量time_inj_F(T)的攻击请求Q(T),具体的,攻击请求矩阵如下:
Q(T)=[Q(t0),Q(t1)]T
其中,Q(ti)与time_inj_F(ti)一一对应,i=0,1;即表示Q(t0)是对应time_inj_F(t0)的攻击请求,Q(t1)是对应time_inj_F(t1)的攻击请求,具体的,在发送攻击请求时Q(T),按照i=0,1的顺序依次发送。
进一步的,对应发送的攻击请求,分别记录相应的第一响应时间和第二响应时间,具体的,将响应矩阵记为R:R=[r0,r1]T,也可记为R=D(T)+ΔT,其中,r0表示对应第一SQL攻击向量记录的第一响应时间,r1表示对应第二SQL攻击向量记录的第二响应时间,D(T)代表执行time_inj_F(T)攻击向量的耗时,D(T)=[D(t0),D(t1)]T,ΔT由原始请求的响应时间及受环境影响的波动时间两部分组成,ΔT=[Δt0,Δt1]T。因此,可以得到:
r 0 r 1 = R = D ( T ) + Δ T = D ( t 0 ) D ( t 1 ) + Δ t 0 Δt 1 = D ( t 0 ) + Δ t 0 D ( t 1 ) + Δt 1 .
步骤120:计算上述延时矩阵和响应矩阵的相似度,确定该相似度达到设定阈值时,判定存在时间型SQL注入漏洞。
较佳的,在计算相似度之前,可以先对第二响应时间进行取整,并计算第二响应时间是否为第二延时指示表征的延时时长的整数倍,若是,则确定进行后续相似度计算,否则,判定不存在时间型SQL注入漏洞。
例如,对r1取整,记为round(r1),并判断round(r1)是否为t1的整数倍,若是,则继续执行后续的相似度计算,否则,认为不存在SQL时间注入。
具体的,将延时矩阵和响应矩阵的相似度记为S,较佳的,可以采用以下方式计算S:
S = T · R ( T · T ) * ( R · R ) = t 0 r 0 + t 1 r 1 ( t 0 2 + t 1 2 ) * ( r 0 2 + r 1 2 )
本发明实施例中,由于第一SQL攻击向量和第二SQL攻击向量的发送间隔非常短,在如此短的时间之内,两次请求受到网络环境变化的影响基本一致,换言之,第一响应时间和第二响应时间受到正常环境影响而产生的波动,不会对相似度的计算产生决定性影响。所以,ΔT在计算过程中对计算出的相似度S影响很小,有:
S = T · R ( T · T ) * ( R · R ) ≈ T · D ( T ) ( T · T ) * ( D ( T ) · D ( T ) ) = 1
另一方面,一旦响应时间真的受到异常环境影响而波动,那么,ΔT在计算过程中对计算出的相似度S影响就会很大,S≈1将不再成立。因此,考虑到正常情况下环境影响的波动,本实施例中,较佳的,将用于判断SQL时间注入是否存在的相似度阈值设置为0.999,即:如果相似度S>0.999,则认为存在SQL时间注入,即存在时间型SQL注入漏洞;否则,认为不存在SQL时间注入,即不存在时间型SQL注入漏洞。当然,本实施例中采用的相似度计算公式以及相应的阈值仅为举例,根据不同的应用环境,计算公式、阈值的设置和指示特征取值均可以进行适应性的灵活调整,在此不再赘述。
参阅图2所示,上述实施例的完整应用流程如下:
步骤200:获取待检测的目标链接和相应的待检测参数。
本实施例中,以一个待检测参数为例。
步骤201:构造SQL时间注入通用攻击向量time_inj_F(ti),i=0,1。
步骤202:构造含有攻击向量的请求Q(ti),i=0,1。
步骤203:按照i=0,1的顺序依次发送请求Q(ti),并记响应时间为ri
步骤204:对响应时间r1取整,记为round(r1)。
步骤205:判断round(r1)是否为t1的整数倍?若是,则执行步骤207;否则,执行步骤206。
步骤206:判定不存在SQL时间注入,即不存在时间型SQL注入漏洞,流程结束。
步骤207:计算[t0,t1]T与[r0,r1]T的相似度S。
步骤208:判定S的取值是否大于0.999?若是,则执行步骤209;否则,执行步骤206。
步骤209:判定存在SQL时间注入,即存在时间型SQL注入漏洞,流程结束。
由此可知,本发明实施例中,在短时间内先后发送两次携带不同延时指示的SQL攻击向量,两次携带的延时指示即可以看作期望延时时间,接着,记录两次发送SQL攻击向量各自的响应时间,然后,计算由两次SQL攻击向量组成的延时矩阵和由两次响应时间组成的响应矩阵的相似度。由于在短时间内网络环境的波动变化对两次请求的响应的影响基本一致,因此,如果期望延时时间和实际响应时间相似,则说明目标链接存在SQL时间注入,因为目标服务器执行了延时指示,延迟了相应时长。
本实施例适合于不同的网络状况及不同的目标环境下,无论使用含有sleep()、delay()、banchmark()等任何函数的攻击向量,都能够快速准确的检测出基于时间的SQL注入漏洞。
参阅图3所示,本发明实施例中,检测装置包括生成单元30、通信单元31和判定单元32,其中,
生成单元30,用于确定待测目标,并根据选定的延时矩阵中包含的第一延时指示和第二延时指示,分别生成第一SQL攻击向量和第二SQL攻击向量
通信单元31,用于针对待测目标,依次发送第一SQL攻击向量和第二SQL攻击向量,并记录响应矩阵,响应矩阵中分别记录有对应第一SQL攻击向量的第一响应时间,以及对应第二SQL攻击向量的第二响应时间;
判定单元32,用于计算延时矩阵和响应矩阵的相似度,确定相似度达到设定阈值时,判定存在时间型SQL注入漏洞。
较佳的,生成单元30选定的第一延时指示和第二延时指示中,直接记录了需要执行的延时时长,或者,记录了表示特征表达式重复执行次数的影响因子,以间接指示延时时长。
较佳的,针对待测目标,依次发送第一SQL攻击向量和第二SQL攻击向量时,通信单元31用于:
基于待测目标表征的目标链接以及待检测对象,以及基于第一SQL攻击向量和第二SQL攻击向量,分别生成第一攻击请求和第二攻击请求;
依次向待测目标发送第一攻击请求和第二攻击请求,其中,在接收到第一攻击请求的响应时,再发送第二攻击请求。
较佳的,记录响应矩阵之后,在计算延时矩阵和响应矩阵的相似度之前,判定单元32进一步用于:
将第二响应时间与第二延时指示表征的延时时长进行比较,若确定第二响应时间为第二延时指示表征的延时时长的整数倍,则判定能够执行相似度判断;其中,第二延时指示对应的延时时长大于第一延时指示对应的延时时长。
较佳的,判定单元32进一步用于:
若确定第二响应时间不为第二延时指示表征的延时时长的整数倍,则判定不存在时间型SQL注入漏洞。
较佳的,计算延时矩阵和响应矩阵的相似度时,判定单元32用于:
采用以下公式计算延时矩阵和响应矩阵的相似度:
S = T · R ( T · T ) * ( R · R ) = t 0 r 0 + t 1 r 1 ( t 0 2 + t 1 2 ) * ( r 0 2 + r 1 2 )
其中,t0表示第一延时指示,t1表示第二延时指示,r0表示对应第一SQL攻击向量记录的第一响应时间,r1表示对应第二SQL攻击向量记录的第二响应时间。
综上所述,本发明实施例中,不再通过大量的数据去预估假定漏洞存在时的响应时间区间,而是根据实际的响应时间和攻击向量中期望的延时时间所计算出的相似度进行漏洞存在与否的判定。对于使用延时函数的攻击向量,不需要再使用较长的延时时间,也不需要考虑实际的延时时间是否和期望的延时时间一致;对于使用重复执行特征表达式的攻击向量,不需要考虑不同目标单次执行的时间差。而且,由于在相近时刻内响应时间受到的网络影响基本一致,在计算期望的延时时间和实际的响应时间的相似度时,相近的变化幅度不会对相似度的计算结果造成决定性的影响,所以不会影漏洞存在判定的准确性。因此,可以保证在不同的网络情况及不同的目标环境下,程序能够快速准确的检测出基于时间的SQL注入漏洞,同时,也有效降低了判定SQL注入漏洞给web应用漏洞扫描系统带来的运行负荷。
此外,本发明实施例提供的方案具有以下优点:
1)无需获取大量数据去评估当前的网络情况,简化了操作步骤。
2)无需发送大量的请求获取数据,因此,在多并发的情况下不会对目标服务器站点造成很大压力,避免资源量消耗过大。
3)无需设计有效的响应时间区间,避免了因响应时间区间设置不合理而造成的误判或漏判;
4)无需多次使用延时函数进行判断,大大节省了判定流程的整体耗时。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (12)

1.一种检测SQL注入漏洞的方法,其特征在于,包括:
确定待测目标,并根据选定的延时矩阵中包含的第一延时指示和第二延时指示,分别生成第一SQL攻击向量和第二SQL攻击向量;
针对待测目标,依次发送第一SQL攻击向量和第二SQL攻击向量,并记录响应矩阵,所述响应矩阵中分别记录有对应第一SQL攻击向量的第一响应时间,以及对应第二SQL攻击向量的第二响应时间;
计算所述延时矩阵和所述响应矩阵的相似度,确定所述相似度达到设定阈值时,判定存在时间型SQL注入漏洞。
2.如权利要求1所述的方法,其特征在于,所述第一延时指示和第二延时指示中,直接记录了需要执行的延时时长,或者,记录了表示特征表达式重复执行次数的影响因子,以间接指示延时时长。
3.如权利要求1所述的方法,其特征在于,针对待测目标,依次发送第一SQL攻击向量和第二SQL攻击向量,包括:
基于所述待测目标表征的目标链接以及待检测对象,以及基于所述第一SQL攻击向量和第二SQL攻击向量,分别生成第一攻击请求和第二攻击请求;
依次向所述待测目标发送所述第一攻击请求和第二攻击请求,其中,在接收到所述第一攻击请求的响应时,再发送所述第二攻击请求。
4.如权利要求1、2或3所述的方法,其特征在于,记录所述响应矩阵之后,在计算所述延时矩阵和所述响应矩阵的相似度之前,进一步包括:
将所述第二响应时间与所述第二延时指示表征的延时时长进行比较,若确定所述第二响应时间为所述第二延时指示表征的延时时长的整数倍,则判定能够执行相似度判断;其中,第二延时指示对应的延时时长大于第一延时指示对应的延时时长。
5.如权利要求4所述的方法,其特征在于,进一步包括:
若确定所述第二响应时间不为所述第二延时指示表征的延时时长的整数倍,则判定不存在时间型SQL注入漏洞。
6.如权利要求1、2或3所述的方法,其特征在于,计算所述延时矩阵和所述响应矩阵的相似度,包括:
采用以下公式计算所述延时矩阵和响应矩阵的相似度:
S = T · R ( T · T ) * ( R · R ) = t 0 r 0 + t 1 r 1 ( t 0 2 + t 1 2 ) * ( r 0 2 + r 1 2 )
其中,t0表示第一延时指示,t1表示第二延时指示,r0表示对应第一SQL攻击向量记录的第一响应时间,r1表示对应第二SQL攻击向量记录的第二响应时间。
7.一种检测SQL注入漏洞的装置,其特征在于,包括:
生成单元,用于确定待测目标,并根据选定的延时矩阵中包含的第一延时指示和第二延时指示,分别生成第一SQL攻击向量和第二SQL攻击向量
通信单元,用于针对待测目标,依次发送第一SQL攻击向量和第二SQL攻击向量,并记录响应矩阵,所述响应矩阵中分别记录有对应第一SQL攻击向量的第一响应时间,以及对应第二SQL攻击向量的第二响应时间;
判定单元,用于计算所述延时矩阵和所述响应矩阵的相似度,确定所述相似度达到设定阈值时,判定存在时间型SQL注入漏洞。
8.如权利要求7所述的装置,其特征在于,所述生成单元选定的所述第一延时指示和第二延时指示中,直接记录了需要执行的延时时长,或者,记录了表示特征表达式重复执行次数的影响因子,以间接指示延时时长。
9.如权利要求7所述的装置,其特征在于,针对待测目标,依次发送第一SQL攻击向量和第二SQL攻击向量时,所述通信单元用于:
基于所述待测目标表征的目标链接以及待检测对象,以及基于所述第一SQL攻击向量和第二SQL攻击向量,分别生成第一攻击请求和第二攻击请求;
依次向所待测目标发送所述第一攻击请求和第二攻击请求,其中,在接收到所述第一攻击请求的响应时,再发送所述第二攻击请求。
10.如权利要求7、8或9所述的装置,其特征在于,记录所述响应矩阵之后,在计算所述延时矩阵和所述响应矩阵的相似度之前,所述判定单元进一步用于:
将所述第二响应时间与所述第二延时指示表征的延时时长进行比较,若确定所述第二响应时间为所述第二延时指示表征的延时时长的整数倍,则判定能够执行相似度判断;其中,第二延时指示对应的延时时长大于第一延时指示对应的延时时长。
11.如权利要求10所述的装置,其特征在于,所述判定单元进一步用于:
若确定所述第二响应时间不为所述第二延时指示表征的延时时长的整数倍,则判定不存在时间型SQL注入漏洞。
12.如权利要求7、8或9所述的装置,其特征在于,计算所述延时矩阵和所述响应矩阵的相似度时,所述判定单元用于:
采用以下公式计算所述延时矩阵和响应矩阵的相似度:
S = T · R ( T · T ) * ( R · R ) = t 0 r 0 + t 1 r 1 ( t 0 2 + t 1 2 ) * ( r 0 2 + r 1 2 )
其中,t0表示第一延时指示,t1表示第二延时指示,r0表示对应第一SQL攻击向量记录的第一响应时间,r1表示对应第二SQL攻击向量记录的第二响应时间。
CN201510428942.4A 2015-07-20 2015-07-20 一种检测sql注入漏洞的方法及装置 Active CN105072095B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510428942.4A CN105072095B (zh) 2015-07-20 2015-07-20 一种检测sql注入漏洞的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510428942.4A CN105072095B (zh) 2015-07-20 2015-07-20 一种检测sql注入漏洞的方法及装置

Publications (2)

Publication Number Publication Date
CN105072095A true CN105072095A (zh) 2015-11-18
CN105072095B CN105072095B (zh) 2019-03-26

Family

ID=54501378

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510428942.4A Active CN105072095B (zh) 2015-07-20 2015-07-20 一种检测sql注入漏洞的方法及装置

Country Status (1)

Country Link
CN (1) CN105072095B (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106407803A (zh) * 2016-08-30 2017-02-15 北京奇虎科技有限公司 Sql注入漏洞的检测方法及装置
CN106503553A (zh) * 2016-09-29 2017-03-15 北京知道未来信息技术有限公司 一种无回显的远程命令执行漏洞的验证方法
CN106790195A (zh) * 2016-12-30 2017-05-31 北京神州绿盟信息安全科技股份有限公司 一种sql注入检测方法及装置
CN107122665A (zh) * 2016-02-25 2017-09-01 腾讯科技(深圳)有限公司 漏洞检测方法以及漏洞检测装置
CN107294953A (zh) * 2017-05-18 2017-10-24 深信服科技股份有限公司 攻击操作检测方法及装置
CN107707547A (zh) * 2017-09-29 2018-02-16 北京神州绿盟信息安全科技股份有限公司 一种DDoS攻击的检测方法及设备
CN108509792A (zh) * 2017-02-23 2018-09-07 腾讯科技(深圳)有限公司 一种注入漏洞检测方法及装置
CN108616527A (zh) * 2018-04-16 2018-10-02 贵州大学 一种面向sql注入漏洞挖掘方法和装置
CN109657472A (zh) * 2018-10-11 2019-04-19 平安科技(深圳)有限公司 Sql注入漏洞检测方法、装置、设备及可读存储介质
CN110363008A (zh) * 2019-07-11 2019-10-22 北京脉冲星科技有限公司 一种sql时间盲注的漏洞检测方法、装置和存储设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101312393A (zh) * 2007-05-24 2008-11-26 北京启明星辰信息技术有限公司 一种sql注入漏洞检测方法及系统
US8225402B1 (en) * 2008-04-09 2012-07-17 Amir Averbuch Anomaly-based detection of SQL injection attacks
CN102831345A (zh) * 2012-07-30 2012-12-19 西北工业大学 Sql注入漏洞检测中的注入点提取方法
CN103077348A (zh) * 2012-12-28 2013-05-01 华为技术有限公司 一种Web站点漏洞扫描方法和装置
US8631497B1 (en) * 2007-02-01 2014-01-14 Mcafee, Inc. Systems and methods for automating blind detection of computational vulnerabilities
CN103902912A (zh) * 2012-12-26 2014-07-02 深圳市腾讯计算机系统有限公司 网页漏洞的检测方法和装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8631497B1 (en) * 2007-02-01 2014-01-14 Mcafee, Inc. Systems and methods for automating blind detection of computational vulnerabilities
CN101312393A (zh) * 2007-05-24 2008-11-26 北京启明星辰信息技术有限公司 一种sql注入漏洞检测方法及系统
US8225402B1 (en) * 2008-04-09 2012-07-17 Amir Averbuch Anomaly-based detection of SQL injection attacks
CN102831345A (zh) * 2012-07-30 2012-12-19 西北工业大学 Sql注入漏洞检测中的注入点提取方法
CN103902912A (zh) * 2012-12-26 2014-07-02 深圳市腾讯计算机系统有限公司 网页漏洞的检测方法和装置
CN103077348A (zh) * 2012-12-28 2013-05-01 华为技术有限公司 一种Web站点漏洞扫描方法和装置

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107122665A (zh) * 2016-02-25 2017-09-01 腾讯科技(深圳)有限公司 漏洞检测方法以及漏洞检测装置
CN107122665B (zh) * 2016-02-25 2019-08-13 腾讯科技(深圳)有限公司 漏洞检测方法以及漏洞检测装置
CN106407803A (zh) * 2016-08-30 2017-02-15 北京奇虎科技有限公司 Sql注入漏洞的检测方法及装置
CN106407803B (zh) * 2016-08-30 2019-06-14 北京奇虎科技有限公司 Sql注入漏洞的检测方法及装置
CN106503553A (zh) * 2016-09-29 2017-03-15 北京知道未来信息技术有限公司 一种无回显的远程命令执行漏洞的验证方法
CN106503553B (zh) * 2016-09-29 2019-07-30 北京知道未来信息技术有限公司 一种无回显的远程命令执行漏洞的验证方法
CN106790195B (zh) * 2016-12-30 2019-11-19 北京神州绿盟信息安全科技股份有限公司 一种sql注入检测方法及装置
CN106790195A (zh) * 2016-12-30 2017-05-31 北京神州绿盟信息安全科技股份有限公司 一种sql注入检测方法及装置
CN108509792A (zh) * 2017-02-23 2018-09-07 腾讯科技(深圳)有限公司 一种注入漏洞检测方法及装置
CN107294953A (zh) * 2017-05-18 2017-10-24 深信服科技股份有限公司 攻击操作检测方法及装置
CN107707547A (zh) * 2017-09-29 2018-02-16 北京神州绿盟信息安全科技股份有限公司 一种DDoS攻击的检测方法及设备
CN108616527A (zh) * 2018-04-16 2018-10-02 贵州大学 一种面向sql注入漏洞挖掘方法和装置
CN109657472A (zh) * 2018-10-11 2019-04-19 平安科技(深圳)有限公司 Sql注入漏洞检测方法、装置、设备及可读存储介质
CN109657472B (zh) * 2018-10-11 2023-09-22 平安科技(深圳)有限公司 Sql注入漏洞检测方法、装置、设备及可读存储介质
CN110363008A (zh) * 2019-07-11 2019-10-22 北京脉冲星科技有限公司 一种sql时间盲注的漏洞检测方法、装置和存储设备
CN110363008B (zh) * 2019-07-11 2021-08-06 北京长亭未来科技有限公司 一种sql时间盲注的漏洞检测方法、装置和存储设备

Also Published As

Publication number Publication date
CN105072095B (zh) 2019-03-26

Similar Documents

Publication Publication Date Title
CN105072095A (zh) 一种检测sql注入漏洞的方法及装置
Yuen et al. Real‐time system identification: an algorithm for simultaneous model class selection and parametric identification
Chang et al. Optimal sensor placement for modal identification of bridge systems considering number of sensing nodes
CN108989355B (zh) 一种漏洞检测方法和装置
CN110647750B (zh) 文件完整性度量方法、装置、终端及安全管理中心
CN109639751B (zh) 区块链节点监控方法、装置、系统及计算机存储介质
CN103678105A (zh) 一种页面代码的测试方法和装置
CN103577658A (zh) 智能终端硬件的评估方法及评估系统
CN107896219A (zh) 一种网站脆弱性的检测方法、系统及相关装置
CN103928038A (zh) 电子设备的测试录制及回放方法
CN110995684B (zh) 漏洞检测方法及装置
CN103685189A (zh) 网站安全评估方法及系统
CN108769070A (zh) 一种越权漏洞检测方法及装置
WO2019144548A1 (zh) 安全测试方法、装置、计算机设备和存储介质
CN103902912A (zh) 网页漏洞的检测方法和装置
CN108234441B (zh) 确定伪造访问请求的方法、装置、电子设备和存储介质
CN109298987A (zh) 一种检测网络爬虫运行状态的方法及装置
CN105046124A (zh) 安全防护方法及装置
CN109101410A (zh) 一种风险驱动测试方法和装置以及计算机可读存储介质
CN109302433B (zh) 远程命令执行漏洞的检测方法、装置、设备及存储介质
KR102159399B1 (ko) 웹서버 모니터링 및 악성코드 분석 장치
CN107704377B (zh) 二阶污点传播型漏洞的检测方法
CN104375935A (zh) Sql注入攻击的测试方法和装置
KR101480040B1 (ko) 웹 페이지 변조 식별방법, 시스템 및 컴퓨터로 판독 가능한 기록매체
CN108616527A (zh) 一种面向sql注入漏洞挖掘方法和装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into 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: 20200317

Address after: 100089 Beijing city Haidian District Road No. 4 North wa Yitai three storey building

Co-patentee after: NSFOCUS TECHNOLOGIES Inc.

Patentee after: NSFOCUS INFORMATION TECHNOLOGY Co.,Ltd.

Co-patentee after: Shenzhou Lvmeng Chengdu Technology Co.,Ltd.

Address before: 100089 Beijing city Haidian District Road No. 4 North wa Yitai three storey building

Co-patentee before: NSFOCUS TECHNOLOGIES Inc.

Patentee before: NSFOCUS INFORMATION TECHNOLOGY Co.,Ltd.

TR01 Transfer of patent right
CP01 Change in the name or title of a patent holder

Address after: 100089 Beijing city Haidian District Road No. 4 North wa Yitai three storey building

Patentee after: NSFOCUS Technologies Group Co.,Ltd.

Patentee after: NSFOCUS TECHNOLOGIES Inc.

Patentee after: Shenzhou Lvmeng Chengdu Technology Co.,Ltd.

Address before: 100089 Beijing city Haidian District Road No. 4 North wa Yitai three storey building

Patentee before: NSFOCUS INFORMATION TECHNOLOGY Co.,Ltd.

Patentee before: NSFOCUS TECHNOLOGIES Inc.

Patentee before: Shenzhou Lvmeng Chengdu Technology Co.,Ltd.

CP01 Change in the name or title of a patent holder