一种检测sql注入漏洞的方法及装置的制造方法

文档序号:9352833阅读:550来源:国知局
一种检测sql注入漏洞的方法及装置的制造方法
【技术领域】
[0001] 本发明涉及网络安全技术,特别涉及一种检测SQL注入漏洞的方法及装置。
【背景技术】
[0002] 结构化查询语言(StructuredQueryLanguage,SQL)注入是web应用安全中的 常见漏洞。在存在SQL注入的web应用中,攻击者可利用该web应用的代码缺陷,通过将 SQL命令插入到任何能够影响数据库查询的应用程序参数值中,欺骗服务器执行插入的恶 意SQL命令,从而获取该web应用的敏感信息甚至控制该web应用的整个服务器。因此,需 要设计有效的SQL注入检测方法来检测SQL注入漏洞,以防止SQL注入攻击。
[0003] 实际应用中,SQL注入检测方法也是SQL注入攻击方法,即是采用设定的SQL注入 攻击方法对目标服务器进行攻击,根据目标服务器的反馈判定是否存在SQL注入漏洞。
[0004] SQL盲注一般分为3类:布尔型、时间型和错误注入型。
[0005] 简言之,目前基于时间的SQL注入漏洞检测存在的问题如下:
[0006] 1)在有限的检测时间内,无法获取大量数据去评估当前的网络情况;
[0007] 2)在不考虑时间消耗的情况下,获取大量数据需要发送大量的请求,在多并发扫 描的情况下会对目标服务器站点造成很大压力,同时消耗资源量增大;
[0008] 3)由于扫描过程中网络的不稳定性,无法设计一个合理有效的响应时间区间预估 算法;
[0009] 4)为保证扫描结果的准确性,均多次使用延时函数进行判断,而且单次的延时时 间都较长,导致整体扫描耗时很长;
[0010] 5)对于数据库在执行含有sle印〇、delay〇等延时函数的攻击向量时,执行了攻 击向量中所描述时间的整数倍的情况,传统的基于时间区间的判断方法会造成漏报;
[0011] 6)对于使用含有banchmarkO等重复执行特征表达式的攻击向量做基于时间的 SQL注入漏洞检测时,由于不同目标环境执行一次特征表达式的时间不是固定的,因此,传 统的基于时间区间的判断方法极易出现误报。
[0012] 由此可见,现有的时间型SQL注入漏洞检测方法不能够快速、准确的进行基于时 间的SQL注入漏洞的检测。而且,使用现有的检测方法经常会出现漏报、误报,严重影响web 应用漏洞扫描系统整体的检测性能。

【发明内容】

[0013] 本发明实施例提供一种检测SQL注入漏洞的方法及装置,用以提高时间型SQL注 入漏洞的检测准确率,以及降低检测时web应用漏洞扫描系统的运行负荷。
[0014] 本发明实施例提供的具体技术方案如下:
[0015] -种检测SQL注入漏洞的方法,包括:
[0016] 确定待测目标,并根据选定的延时矩阵中包含的第一延时指示和第二延时指示, 分别生成第一SQL攻击向量和第二SQL攻击向量;
[0017] 针对待测目标,依次发送第一SQL攻击向量和第二SQL攻击向量,并记录响应矩 阵,所述响应矩阵中分别记录有对应第一SQL攻击向量的第一响应时间,以及对应第二SQL 攻击向量的第二响应时间;
[0018] 计算所述延时矩阵和所述响应矩阵的相似度,确定所述相似度达到设定阈值时, 判定存在时间型SQL注入漏洞。
[0019] 这样,可以根据实际的响应时间和攻击向量中期望的延时时间所计算出的相似度 进行漏洞存在与否的判定。对于使用延时函数的攻击向量,不需要再使用较长的延时时间, 也不需要考虑实际的延时时间是否和期望的延时时间一致;对于使用重复执行特征表达式 的攻击向量,不需要考虑不同目标单次执行的时间差。而且,由于在相近时刻内响应时间受 到的网络影响基本一致,在计算期望的延时时间和实际的响应时间的相似度时,相近的变 化幅度不会对相似度的计算结果造成决定性的影响,所以不会影漏洞存在判定的准确性。 因此,可以保证在不同的网络情况及不同的目标环境下,程序能够快速准确的检测出基于 时间的SQL注入漏洞,同时,也有效降低了判定SQL注入漏洞给web应用漏洞扫描系统带来 的运行负荷。
[0020] 较佳的,所述第一延时指示和第二延时指示中,直接记录了需要执行的延时时长, 或者,记录了表示特征表达式重复执行次数的影响因子,以间接指示延时时长。
[0021] 较佳的,针对待测目标,依次发送第一SQL攻击向量和第二SQL攻击向量,包括:
[0022] 基于所述待测目标表征的目标链接以及待检测对象,以及基于所述第一SQL攻击 向量和第二SQL攻击向量,分别生成第一攻击请求和第二攻击请求;
[0023] 依次向所述待测目标发送所述第一攻击请求和第二攻击请求,其中,在接收到所 述第一攻击请求的响应时,再发送所述第二攻击请求。
[0024] 较佳的,记录所述响应矩阵之后,在计算所述延时矩阵和所述响应矩阵的相似度 之前,进一步包括:
[0025] 将所述第二响应时间与所述第二延时指示表征的延时时长进行比较,若确定所述 第二响应时间为所述第二延时指示表征的延时时长的整数倍,则判定能够执行相似度判 断;其中,第二延时指示对应的延时时长大于第一延时指示对应的延时时长。
[0026] 较佳的,进一步包括:
[0027] 若确定所述第二响应时间不为所述第二延时指示表征的延时时长的整数倍,则判 定不存在时间型SQL注入漏洞。
[0028] 较佳的,计算所述延时矩阵和所述响应矩阵的相似度,包括:
[0029] 采用以下公式计算所述延时矩阵和响应矩阵的相似度:
[0030]
[0031] 其中,t。表示第一延时指示,ti表示第二延时指示,r。表示对应第一SQL攻击向量 记录的第一响应时间,^表示对应第二SQL攻击向量记录的第二响应时间。
[0032] -种检测SQL注入漏洞的装置,包括:
[0033] 生成单元,用于确定待测目标,并根据选定的延时矩阵中包含的第一延时指示和 第二延时指示,分别生成第一SQL攻击向量和第二SQL攻击向量;
[0034] 通信单元,用于针对待测目标,依次发送第一SQL攻击向量和第二SQL攻击向量, 并记录响应矩阵,所述响应矩阵中分别记录有对应第一SQL攻击向量的第一响应时间,以 及对应第二SQL攻击向量的第二响应时间;
[0035] 判定单元,用于计算所述延时矩阵和所述响应矩阵的相似度,确定所述相似度达 到设定阈值时,判定存在时间型SQL注入漏洞。
[0036] 这样,可以根据实际的响应时间和攻击向量中期望的延时时间所计算出的相似度 进行漏洞存在与否的判定。对于使用延时函数的攻击向量,不需要再使用较长的延时时间, 也不需要考虑实际的延时时间是否和期望的延时时间一致;对于使用重复执行特征表达式 的攻击向量,不需要考虑不同目标单次执行的时间差。而且,由于在相近时刻内响应时间受 到的网络影响基本一致,在计算期望的延时时间和实际的响应时间的相似度时,相近的变 化幅度不会对相似度的计算结果造成决定性的影响,所以不会影漏洞存在判定的准确性。 因此,可以保证在不同的网络情况及不同的目标环境下,程序能够快速准确的检测出基于 时间的SQL注入漏洞,同时,也有效降低了判定SQL注入漏洞给web应用漏洞扫描系统带来 的运行负荷。
[0037] 较佳的,所述生成单元选定的所述第一延时指示和第二延时指示中,直接记录了 需要执行的延时时长,或者,记录了表示特征表达式重复执行次数的影响因子,以间接指示 延时时长。
[0
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1