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连接开始到接收完 ...
【技术保护点】
一种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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。