一种SQL注入检测方法及装置制造方法及图纸

技术编号:15519928 阅读:85 留言:0更新日期:2017-06-04 09:38
本申请公开了SQL注入检测方法及装置,在至少一个HTTP请求中注入延时注入命令得到延时HTTP请求后发送给服务端;确定针对每个延时HTTP请求的从域名解析开始或从建立TCP连接开始到接收完响应数据所使用的时长中的部分时长,该部分时长中包括从成功建立TCP连接开始到开始接收到响应数据所需的时长;根据确定的指定时长和预设时长确定是否存在注入漏洞。通过本申请的方案,能够提高SQL注入检测的准确性。且若指定时长的计算结束时间为开始接收到响应数据时,可以断开连接,缓解高并发情况下得不到有效响应时间的问题,还能够避免文件过大导致的超时现象,及避免受网络波动影响导致的误报和漏报。

SQL injection detection method and device

The invention discloses a SQL injection detection method and device, at least one HTTP request in order to get into the injection delay delay HTTP request sent to the server; time delay is determined for each HTTP request from the domain name or start from the beginning of the establishment of TCP is connected to the receiving end response data length used in some time this part includes long, from start to start a successful TCP connection receives the response data needed for long time; according to the specified length and preset period to determine whether the presence of injection. The accuracy of SQL injection detection can be improved by this application scheme. And if a specified time computing end time began to receive the response data, can be disconnected, alleviate the high concurrent case without effective response time, but also can avoid large files to time-out, and avoid false positives and false negatives due to fluctuations caused by network.

【技术实现步骤摘要】
一种SQL注入检测方法及装置
本申请涉及网络安全
,尤其涉及一种SQL注入检测方法及装置。
技术介绍
SQL(StructuredQueryLanguage,结构化查询语言)注入漏洞是web应用安全中的常见漏洞。实际应用中,SQL注入检测方法也是SQL注入攻击方法,即是采用设定的SQL注入攻击方法对目标服务器进行攻击,根据目标服务器的反馈判定是否存在SQL注入漏洞。现有技术中采用多个携带有SQL注入命令的HTTP(超文本传输协议,HyperTextTransferProtocol)请求实现对时间型的SQL注入漏洞的检测。且,针对检测漏洞用的HTTP请求,通常从域名(DNS,DomainNameSystem)解析或开始建立TCP(TransmissionControlProtocol,传输控制协议)连接开始计时,到接收完所有响应数据结束计时,并将开始计时到结束计时之间的时间段作为延时HTTP请求的响应时间。然后,将该响应时间与预置时间进行对比,来确定是否存在SQL注入漏洞。专利技术人在实现本专利技术的过程中发现,现有技术中的SQL注入检测的检测准确性较低,存在漏报及误报的现象。
技术实现思路
本申请实施例提供了一种SQL注入检测方法及装置,用以解决现有技术中检测准确性较低,存在漏报及误报的现象等的问题。一方面,本申请实施例提供一种SQL注入检测方法,包括:在至少一个HTTP请求中注入延时注入命令得到延时HTTP请求后发送给服务端;针对每个延时HTTP请求,确定针对该延时HTTP请求的指定时长;其中,所述指定时长指从域名解析开始或从建立TCP连接开始到接收完响应数据所使用的时长中的部分时长,且,所述部分时长中包括从成功建立TCP连接开始到开始接收到响应数据所需的时长;根据各延时HTTP请求的指定时长和预设时长,确定是否存在注入漏洞。另一方面,本申请实施例提供一种SQL注入检测装置,包括:延时注入命令注入模块,用于在至少一个HTTP请求中注入延时注入命令得到延时HTTP请求后发送给服务端;指定时长确定模块,用于针对每个延时HTTP请求,确定针对该延时HTTP请求的指定时长;其中,所述指定时长指从域名解析开始或从建立TCP连接开始到接收完响应数据所使用的时长中的部分时长,且,所述部分时长中包括从成功建立TCP连接开始到开始接收到响应数据所需的时长;注入漏洞确定模块,用于根据各延时HTTP请求的指定时长和预设时长,确定是否存在注入漏洞。另一方面,本申请实施例提供一种非易失性计算机存储介质,存储有计算机可执行指令,所述计算机可执行指令设置为:在至少一个HTTP请求中注入延时注入命令得到延时HTTP请求后发送给服务端;针对每个延时HTTP请求,确定针对该延时HTTP请求的指定时长;其中,所述指定时长指从域名解析开始或从建立TCP连接开始到接收完响应数据所使用的时长中的部分时长,且,所述部分时长中包括从成功建立TCP连接开始到开始接收到响应数据所需的时长;根据各延时HTTP请求的指定时长和预设时长,确定是否存在注入漏洞。另一方面,本申请实施例还提供了一种电子设备,包括:至少一个处理器;以及存储器;其中,所述存储器存储有可被所述至少一个处理器执行的程序,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:在至少一个HTTP请求中注入延时注入命令得到延时HTTP请求后通过通信接口发送给服务端;针对每个延时HTTP请求,确定针对该延时HTTP请求的指定时长;其中,所述指定时长指从域名解析开始或从建立TCP连接开始到接收完响应数据所使用的时长中的部分时长,且,所述部分时长中包括从成功建立TCP连接开始到开始接收到响应数据所需的时长;根据各延时HTTP请求的指定时长和预设时长,确定是否存在注入漏洞。另一方面,本申请实施例提供一种计算机程序产品,包括存储在存储器上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,使所述计算机执行:在至少一个HTTP请求中注入延时注入命令得到延时HTTP请求后发送给服务端;针对每个延时HTTP请求,确定针对该延时HTTP请求的指定时长;其中,所述指定时长指从域名解析开始或从建立TCP连接开始到接收完响应数据所使用的时长中的部分时长,且,所述部分时长中包括从成功建立TCP连接开始到开始接收到响应数据所需的时长;根据各延时HTTP请求的指定时长和预设时长,确定是否存在注入漏洞。本申请有益效果如下:在本申请实施例提供的技术方案中,在至少一个HTTP请求中注入延时注入命令得到延时HTTP请求后发送给服务端;针对每个延时HTTP请求,确定针对该延时HTTP请求的指定时长;其中,所述指定时长指从域名解析开始或从建立TCP连接开始到接收完响应数据所使用的时长中的部分时长,且,所述部分时长中包括从成功建立TCP连接开始到开始接收到响应数据所需的时长;根据各延时HTTP请求的指定时长和预设时长,确定是否存在注入漏洞。其中,由于指定时长指从建立TCP连接开始到接收完响应数据所使用的时长中的部分时长,不是整个延时HTTP请求的响应时间,比现有技术能够减少HTTP请求处理过程中部分受网络波动的影响环节(例如域名解析所需的时间、建立TCP连接所需的时间,传输请求的数据所需的时间)所占用的时间,使得最终确定的响应时间更加准确,减少了漏报和误报,提高了SQL注入检测的准确性。同时,专利技术人在实现本专利技术的过程中发现,在一种应用场景中,例如为了保证整体的扫描性能,扫描器都会设置一个HTTP请求的超时时间,并从一个HTTP请求发出开始计时,如果到设定的超时时间后,还没有接收完响应数据或者还没有收到响应,则认为该HTTP请求异常或者以设定时间作为该HTTP请求的响应时间,该响应时间用于进行SQL注入检测。由于响应数据的数据量大小不一,现有技术中往往会使用很大的超时时间来提高检测注入漏洞的准确性,导致整个SQL注入检测的耗时变得很长,尤其是注入漏洞真正存在的时候,整个检测耗时将变得非常长,导致漏洞检测效率低。在本申请实施例中,当指定时长为从成功建立TCP连接开始到开始接收到响应数据所需的时长时,或者为从域名解析开始或从开始建立TCP连接到开始接收到响应数据所用的时长,可以消除响应数据的数据量大小不一对SQL注入检测的影响,那么在使用超时时间时,就不需要使用很大的超时时间,缩短了整个SQL注入检测的耗时,提高了检测效率。此外,由于本申请实施例采用的指定时长能够剔除HTTP请求处理过程中容易受网络波动影响的环节所占用的时间,故此本申请实施例能够减少网络波动的影响,进一步减少漏报和误报,提高SQL注入检测的准确性。附图说明为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1所示为本申请实施例一提供的SQL注入检测方法流程示意图;图2所示为本申请实施例二提供的SQL注入检测方法流程示意图;图3所示为本申请实施例三提供的SQL注入检测装置结构图;图4所示为本申请实施例五中提供的SQL注入检测方法的电子设备的硬件结构示意图。具本文档来自技高网...
一种SQL注入检测方法及装置

【技术保护点】
一种SQL注入检测方法,其特征在于,所述方法包括:在至少一个HTTP请求中注入延时注入命令得到延时HTTP请求后发送给服务端;针对每个延时HTTP请求,确定针对该延时HTTP请求的指定时长;其中,所述指定时长指从域名解析开始或从建立TCP连接开始到接收完响应数据所使用的时长中的部分时长,且,所述部分时长中包括从成功建立TCP连接开始到开始接收到响应数据所需的时长;根据各延时HTTP请求的指定时长和预设时长,确定是否存在注入漏洞。

【技术特征摘要】
1.一种SQL注入检测方法,其特征在于,所述方法包括:在至少一个HTTP请求中注入延时注入命令得到延时HTTP请求后发送给服务端;针对每个延时HTTP请求,确定针对该延时HTTP请求的指定时长;其中,所述指定时长指从域名解析开始或从建立TCP连接开始到接收完响应数据所使用的时长中的部分时长,且,所述部分时长中包括从成功建立TCP连接开始到开始接收到响应数据所需的时长;根据各延时HTTP请求的指定时长和预设时长,确定是否存在注入漏洞。2.根据权利要求1所述的方法,其特征在于,根据各延时HTTP请求的指定时长和预设时长,确定是否存在注入漏洞,具体包括:针对每个延时HTTP请求,判断该延时HTTP请求的指定时长是否大于所述预设时长;若各延时HTTP请求的指定时长均大于所述预设时长,则确定存在注入漏洞;若至少一个延时HTTP请求的指定时长小于或等于所述预设时长,则确定不存在注入漏洞。3.根据权利要求1所述的方法,其特征在于,根据各延时HTTP请求的指定时长和预设时长,确定是否存在注入漏洞,具体包括:针对每个延时HTTP请求,判断该延时HTTP请求的指定时长是否满足第一预设条件,所述第一预设条件包括指定时长大于所述预设时长、且大于或等于该延时HTTP请求中的延时注入命令中的延时时间;若各延时HTTP请求的指定时长均满足所述第一预设条件,则确定存在注入漏洞;若至少一个延时HTTP请求的指定时长不满足所述第一预设条件,则确定不存在注入漏洞。4.根据权利要求3所述的方法,其特征在于,若存在至少两个延时HTTP请求,且存在至少一个延时HTTP请求的延时注入命令中的延时时间与其它延时HTTP请求的延时注入命令中的延时时间不同,所述确定存在注入漏洞之前,所述方法还包括:确认所述至少两个延时HTTP请求中的任意两个延时HTTP请求均满足第二预设条件,所述第二预设条件为两个延时HTTP请求中延时时间较大的延时HTTP请求的指定时长大于延时时间较小的延时HTTP请求的指定时长。5.根据权利要求1所述的方法,其特征在于,所述指定时长具体包括以下时长中的任一种:第一时长,为从开始建立TCP连接到开始接收到响应数据所用的时长;第二时长,为从成功建立TCP连接开始到开始接收到响应数据所用的时长;第三时长,为从成功建立TCP连接开始到接收完响应数据所用的时长;第四时长,在HTTP请求中的目的地址为域名情况下,从域名解析开始到开始接收到响应数据所用的时长。6.根据权利要求1所述的方法,其特征在于,所述方法还包括:根据以下方法确定所述预设时长:发送至少一个未携带延时注入命令的HTTP请求给服务端;针对每个未携带延时注入命令的HTTP请求,确定针对该未携带延时注入命令的HTTP请求的所述指定时长作为初始预设时长;计算初始预设时长的均值和标准差;计算在区间[μ-λσ,μ+λσ]内的初始预设时长的平均值;并将该平均值作为所述预设时长,其中μ表示均值,σ表示标准差,λ表示指定系数。7.根据权利要求5所述的方法,其特征在于,若所述指定时长为第一时长、第二时长或第四时长,所述方法还包括:针对每个延时HTTP请求,当开始接收到该延时HTTP请求的响应数据时,断开针对该延时HTTP请求的连接。8.一种SQL注入检测装置,其特征在于,所述装置包括:延时注入命令注入模块,用于在至少一个HT...

【专利技术属性】
技术研发人员:符春辉田杰刘璐周黎张鑫赵一民
申请(专利权)人:北京神州绿盟信息安全科技股份有限公司北京神州绿盟科技有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1