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

技术编号:19866193 阅读:23 留言:0更新日期:2018-12-22 13:52
本公开提供一种检测SQL注入漏洞的方法及装置,涉及网络安全技术领域。能够解决SQL注入检测漏报或误报率高的问题。具体技术方案为:确定SQL结构化查询语言语句的注入环境,所述SQL语句的注入环境用于指示所述SQL语句待注入的系统类型、数据库类型中的至少一项;根据所述SQL语句的注入环境生成所述SQL语句的有效载荷,所述有效载荷用于指示执行对应的命令并在执行成功后返回预设字符;向服务器发送所述SQL语句的有效载荷并接收所述服务器发送的反馈信息;在所述反馈信息包含所述预设字符时,确定所述服务器存在漏洞。本公开的发明专利技术内容能够提高检测SQL注入漏洞的精准性和无损性。

【技术实现步骤摘要】
一种检测SQL注入漏洞的方法及装置
本专利技术涉及网络安全
,特别涉及一种检测SQL注入漏洞的方法及装置。
技术介绍
结构化查询语言(StructuredQueryLanguage,SQL)注入是web应用安全中的常见漏洞,也是黑客对数据库进行攻击的常用手段之一。在存在SQL注入的web应用中,攻击者可利用该web应用的代码缺陷,通过将SQL命令插入到任何能够影响数据库查询的应用程序参数值中,欺骗服务器执行插入的恶意SQL命令,从而获取该web应用的敏感信息甚至控制该web应用的整个服务器。随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多。但是由于程序员的水平及经验也参差不齐,相当大一部分程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患。例如有些恶意攻击者可以提交一段数据库查询代码,根据程序返回的结果,获得非法的数据。现有的检测SQL注入漏洞方法大多会出现一定概率的漏报、误报,并且在检测过程中可能会出现有损检测,例如泄露出数据库类型,数据库版本,用户信息甚至于密码等信息。同时可能对数据库中的数据进行修改甚至删除操作,进而损害数据库中的数据。因此,需要设计精准有效的SQL注入检测方法来检测SQL注入漏洞,以防止SQL注入攻击。
技术实现思路
本公开实施例提供一种检测SQL注入漏洞的方法及装置,能够减少或避免相关技术中SQL注入检测的漏报或误报率,提高SQL注入漏洞检测的精准性。所述技术方案如下:根据本公开实施例的第一方面,提供一种检测SQL注入漏洞的方法,应用于终端,其所述方法包括:确定SQL结构化查询语言语句的注入环境,所述SQL语句的注入环境用于指示所述SQL语句待注入的系统类型、数据库类型中的至少一项;根据所述SQL语句的注入环境生成所述SQL语句的有效载荷,所述有效载荷用于指示执行对应的命令并在执行成功后返回预设字符;向服务器发送所述SQL语句的有效载荷;接收所述服务器发送的反馈信息;在所述反馈信息包含所述预设字符时,确定所述服务器存在漏洞。在一个可选实施例中,所述系统类型包括以下至少一种:内容管理系统CMS、自动化办公系统OA;所述确定SQL结构化查询语言语句的注入环境包括:接收预设指纹校验识别并确定对应的操作系统。在一个可选实施例中,所述数据库类型包括以下至少一种:MySQL数据库、MSSQL数据库、Oracle数据库。在一个可选实施例中,根据所述SQL语句的注入环境生成所述SQL语句的有效载荷包括:根据所述注入环境确定相对应的预设执行规则;根据所述预设执行规则,生成所述SQL语句的有效载荷。本实施例公开的SQL注入漏洞检测的技术方案根据注入环境的不同构造不同检测载荷进行检测,提高了通过SQL注入漏洞检测的精准性。根据本公开实施例的第二方面,提供一种检测SQL注入漏洞的方法,应用于服务器,其所述方法包括:接收终端发送的SQL语句的有效载荷;其中,所述有效载荷根据确定的所述SQL语句的注入环境生成;所述SQL语句的注入环境用于指示所述SQL语句待注入的系统类型、数据库类型中的至少一项;根据所述有效载荷,执行所述有效载荷指示的对应命令;向所述终端发送执行结果的反馈信息;其中,在所述反馈信息包含所述预设字符时,确定所述服务器存在漏洞。根据本公开实施例的第三方面,一种检测SQL注入漏洞的装置,应用于终端,所述装置包括:确定模块、生成模块、通讯模块和判断模块;其中,所述确定模块,用于确定SQL结构化查询语言语句的注入环境,所述SQL语句的注入环境用于指示所述SQL语句待注入的系统类型、数据库类型中的至少一项;所述生成模块,用于根据所述SQL语句的注入环境生成所述SQL语句的有效载荷,所述有效载荷用于指示执行对应的命令并在执行成功后返回预设字符;所述通讯模块,用于向服务器发送所述SQL语句的有效载荷;所述通讯模块,还用于接收所述服务器发送的反馈信息;所述判断模块,用于在所述反馈信息包含所述预设字符时,确定所述服务器存在漏洞。在一个可选实施例中,所述确定模块确定的系统类型包括以下至少一种:内容管理系统CMS、自动化办公系统OA;所述确定模块,用于确定SQL结构化查询语言语句的注入环境包括:接收预设指纹校验识别并确定对应的操作系统。在一个可选实施例中,所述确定模块确定的数据库类型包括以下至少一种:MySQL数据库、MSSQL数据库、Oracle数据库。在一个可选实施例中,所述生成模块具体用于:根据所述注入环境确定相对应的预设执行规则;根据所述预设执行规则,生成所述SQL语句的有效载荷。根据本公开实施例的第四方面,一种检测SQL注入漏洞的装置,应用于服务器,所述装置包括:,所述装置包括:通讯模块和执行模块;其中,所述通讯模块,用于接收终端发送的SQL语句的有效载荷;其中,所述有效载荷根据确定的所述SQL语句的注入环境生成;所述SQL语句的注入环境用于指示所述SQL语句待注入的系统类型、数据库类型中的至少一项;所述执行模块,用于根据所述有效载荷,执行所述有效载荷指示的对应命令;所述通讯模块,还用于向所述终端发送执行结果的反馈信息;其中,在所述反馈信息包含所述预设字符时,确定所述服务器存在漏洞。本公开实施例的检测SQL注入漏洞的方法和装置相较相关技术对不同SQL注入类型、不同数据库在SQL注入漏洞检测时进行区别判断,通过编写相对应的、精准的检测载荷Payload来实现SQL注入漏洞检测的精准性。应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。附图说明此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。图1是本公开实施例提供的一种检测SQL注入漏洞的方法的流程图;图2是本公开实施例提供的一种检测SQL注入漏洞的方法的流程图;图3是本公开实施例提供的一种检测SQL注入漏洞的装置的逻辑层结构示意图。图4是本公开实施例提供的一种检测SQL注入漏洞的装置的逻辑层结构示意图。具体实施方式这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。以下示例性实施例中出现的第一和第二仅为了区分对象便于表述,不具有任何次序或流程的限制。本公开实施例提供一种检测SQL注入漏洞的方法,应用于终端,如图1所示,该检测方法包括以下步骤:101、确定SQL结构化查询语言语句的注入环境,所述SQL语句的注入环境用于指示所述SQL语句待注入的系统类型、数据库类型中的至少一项;102、根据所述SQL语句的注入环境生成所述SQL语句的有效载荷,所述有效载荷用于指示执行对应的命令并在执行成功后返回预设字符;103、向服务器发送所述SQL语句的有效载荷并接收所述服务器发送的反馈信息;104、在所述反馈信息包含所述预设字符时,确定所述服务器存在漏洞。本实施例公开的SQL注入漏洞检测的技术方案根据注入环境的不同构造不同检测载荷进行检测,提高了通过SQL注入漏洞检测的精本文档来自技高网...

【技术保护点】
1.一种检测SQL注入漏洞的方法,应用于终端,其特征在于,所述方法包括:确定SQL结构化查询语言语句的注入环境,所述SQL语句的注入环境用于指示所述SQL语句待注入的系统类型、数据库类型中的至少一项;根据所述SQL语句的注入环境生成所述SQL语句的有效载荷,所述有效载荷用于指示执行对应的命令并在执行成功后返回预设字符;向服务器发送所述SQL语句的有效载荷并接收所述服务器发送的反馈信息;在所述反馈信息包含所述预设字符时,确定所述服务器存在漏洞。

【技术特征摘要】
1.一种检测SQL注入漏洞的方法,应用于终端,其特征在于,所述方法包括:确定SQL结构化查询语言语句的注入环境,所述SQL语句的注入环境用于指示所述SQL语句待注入的系统类型、数据库类型中的至少一项;根据所述SQL语句的注入环境生成所述SQL语句的有效载荷,所述有效载荷用于指示执行对应的命令并在执行成功后返回预设字符;向服务器发送所述SQL语句的有效载荷并接收所述服务器发送的反馈信息;在所述反馈信息包含所述预设字符时,确定所述服务器存在漏洞。2.根据权利要求1所述的方法,其特征在于,所述系统类型包括以下至少一种:内容管理系统CMS、自动化办公系统OA;所述确定SQL结构化查询语言语句的注入环境包括:接收预设指纹校验识别并确定对应的操作系统。3.根据权利要求1所述的方法,其特征在于,所述数据库类型包括以下至少一种:MySQL数据库、MSSQL数据库、Oracle数据库。4.根据权利要求1-3任一项所述的方法,其特征在于,根据所述SQL语句的注入环境生成所述SQL语句的有效载荷包括:根据所述注入环境确定相对应的预设执行规则;根据所述预设执行规则,生成所述SQL语句的有效载荷。5.一种检测SQL注入漏洞的方法,应用于服务器,其特征在于,所述方法包括:接收终端发送的SQL语句的有效载荷;其中,所述有效载荷根据确定的所述SQL语句的注入环境生成;所述SQL语句的注入环境用于指示所述SQL语句待注入的系统类型、数据库类型中的至少一项;根据所述有效载荷,执行所述有效载荷指示的对应命令;向所述终端发送执行结果的反馈信息;其中,在所述反馈信息包含所述预设字符时,确定所述服务器存在漏洞。6.一种检测SQL注入漏洞的装置,应用于终端,其特征在于,所述装置包括:确定模块、生成模块、通讯模块和判断模块;其中,...

【专利技术属性】
技术研发人员:李宇欣赵培源朱利军
申请(专利权)人:西安四叶草信息技术有限公司
类型:发明
国别省市:陕西,61

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

1