CN102185930A - 一种sql注入漏洞检测方法 - Google Patents

一种sql注入漏洞检测方法 Download PDF

Info

Publication number
CN102185930A
CN102185930A CN2011101535058A CN201110153505A CN102185930A CN 102185930 A CN102185930 A CN 102185930A CN 2011101535058 A CN2011101535058 A CN 2011101535058A CN 201110153505 A CN201110153505 A CN 201110153505A CN 102185930 A CN102185930 A CN 102185930A
Authority
CN
China
Prior art keywords
sql
user
input
word string
syntax
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
CN2011101535058A
Other languages
English (en)
Other versions
CN102185930B (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.)
Beijing Institute of Technology BIT
Original Assignee
Beijing Institute of Technology BIT
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 Beijing Institute of Technology BIT filed Critical Beijing Institute of Technology BIT
Priority to CN 201110153505 priority Critical patent/CN102185930B/zh
Publication of CN102185930A publication Critical patent/CN102185930A/zh
Application granted granted Critical
Publication of CN102185930B publication Critical patent/CN102185930B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及一种SQL注入漏洞检测方法,包括以下步骤:一、用户输入数据截获;二、无害化输入生成;三、进行SQL词法分析和语法分析,生成SQL语法树,分别是基于用户输入字串的语法树以及基于无害化字串的语法树;四、SQL语法树比对,如果相同认为该组测试字串通过本轮测试;五、结果响应:如果发现了用户有SQL注入的企图,则阻止该HTTP包,否则将该HTTP包放行。本发明分析对象均直接或间接来源于用户输入,这样可以最大限度还原用户本意,降低了误报率。同时基于SQL语法树分析,能够从根本上阻断进行SQL注入的可能,从而提高检测的准确率。

Description

一种SQL注入漏洞检测方法
技术领域
本发明涉及一种针对SQL注入威胁的可以用于web防护及入侵检测的检测方法,属于网络信息安全领域。
背景技术
数据库与WEB之间的关联已经越来越密切,而web方便快捷,面向用户群体广泛的特点使B/S开发的热度逐年增加,可以说web大大扩展了数据库的用户群,使其真正影响到了个人的生活方式。但是web在给数据库带来这些优点的同时也为数据库带来了许多安全隐患。其中危害最大,攻击手段最多,最难防范的便是SQL注入(SQL Injection)攻击。
在WEB应用常见的前台语言,如ASP.NET,PHP或JSP中,一个典型的处理登录的SQL语句可以写作:
Query=“SELECT * FROM user WHERE user=”+“‘$username’”+“AND pass=”+“‘$password’”;
通常我们通过获取用户提交的变量$username、$password来处理该次登录请求,将其提交给数据库并查看返回的Query值,从而决定本次登录是否成功。这条查询SQL语句在大多数情况下均能很好的工作。然而不幸的是,当攻击者输入一些精心构造的语句时,我们提交给数据库的SQL语句的执行结果就会偏离编写者的本意。如攻击者输入的$username为:admin’OR‘1’=‘1’--。此时整条查询语句变成了:
Query=“SELECT * FROM user WHERE user=”+“‘admin’OR‘1’=‘1’--’”+“AND pass=”+“‘$password’”;
这条SQL语句由于存在了OR‘1’=‘1’这个恒真子查询,所以不管攻击者提交的用户名密码是否正确,攻击者输入得到的Query返回值总是真,也就是攻击者通过这种SQL注入攻击行为,绕过了登录检测,从而可以以任何用户名登录系统。
SQL注入漏洞更为可怕的一点在于,他为攻击者提供了一条可以随意操作数据库的最大权限的通道,从而可以随意对WEB应用程序的后台数据库进行查询,增加,修改,删除等操作。
然而SQL注入漏洞在理论上存在于所有应用程序与数据库交互之处,一个中等规模的应用即可能有上百处,且由于整条SQL语句是由用户输入与程序提供的原语句拼合而成,对于用户可能的复杂输入,分析防范非常困难。
通过分析,我们可以看到SQL注入具有危害大,漏洞存在离散,分析防御困难的特点。且漏洞覆盖所有支持标准SQL的数据库,SQL Server、MySql、Oracle、DB2、Sybase等数据库均不能幸免。故而其被OWASP评定为2007-2010年最大网络安全威胁。
SQL注入漏洞的危害是如此之大,从常理上讲存在这一漏洞的网站应该非常少才对。不幸的是,通过使用Google对中国地区网站搜索关键字为“.asp?”,“.php?”,“.jsp?”的网址链接,进而采用SQL注入扫描工具进行检测,我们惊人的发现13%的asp链接,8%的php链接以及3%的jsp链接存在着一种或多种类型的SQL注入漏洞,这也就意味着十分之一左右的网页存在着潜在风险,浏览这样的网页很可能被植入的木马攻击。
目前,对SQL注入攻击的防御方式主要有以下几种:
1.人工管理:手工添加参数过滤语句,对用户输入进行严格过滤。主要不足在于复杂的应用程序需要处理大量的用户输入,手工检测不仅极大地增加了程序员的负担,也使程序变的难以维护。同时也因为SQL注入攻击的多样性使得该方法难以防御所有类型的SQL注入攻击。
2.关键词过滤:制定一个关键词集合(主要为SQL语言的关键字及符号,如AND、单引号),对于所有的用户输入均与该集合中的每一个关键词匹配,如果用户的输入中存在关键字,则判定为非法输入。主要不足在于,SQL语句是千变万化的,一种语句的执行结果可以等价转换为成其他多句语句执行结果,利用编码和利用数据库命令动态构造结构字符串都可绕过这类防范。且由于关键词过滤,导致一些含关键词的正常输入(如:YOU AND ME)也被影响,这是关键词过滤的最大弊病。
3.API及存储过程:编写专用的API或者采用存储过程的方式避免使用SQL语句的拼接,从而屏蔽SQL注入攻击。主要不足在于,对于WEB应用所有与数据库交互的地方均使用API或存储过程成本高昂,开发不便。且所编写的一套API在内部执行过程中依旧采用关键字过滤技术,换汤不换药。一般只有企业级应用才采用,虽然付出许多额外代价可以做到比较安全,但是依旧不能从根本上完全防止SQL注入攻击。
总体来看,因为其攻击的隐蔽性与多样性,同时有些关键字也常常为普通用户使用,对SQL注入的检测难点在于难以保证不漏报且不错报。
发明内容
本发明的目的是针对SQL注入攻击的检测与防御,提出一种全新、高效的检测模式与防御思路,从根本上阻断SQL注入途径,不漏报非法用户的SQL注入行为同时不错报合法用户的正常行为。
SQL是一种结构化的查询语言,对于固定的查询他有着固定的语法结构,而在进行SQL注入攻击时,由于攻击者必须改变SQL语句的语义,而语义的改变也必将影响到其提交查询的语法树形结构。于是,根据无害的标准输入及可疑输入所构成的语法树形结构的比对结果,即可判断用户输入是否含有恶意。本发明就是基于该思想实现的。
本发明提供了一种SQL注入漏洞检测方法,包括以下步骤:
一、用户输入数据截获:
(1)获取用户向应用程序提交的HTTP包;
(2)将用户提交的GET、POST数据按URL、COOKIE、表单分类,并按类型提取用户数据包中提交的所有参数值;
(3)将获得的多组参数值按照URL编码和其他HTTP包指定编码方式解码参数值;
二、无害化输入生成:
(1)将步骤一中得到的n组参数值记为Q1,Q2……Qn,同时生成等量的空白字串Q’1,Q’2……Q’n;
(2)按照无害化规则将Qi字串转化为无害字串拷贝至字串Q’i,Qi仍保留原内容(i=1,2,……n);
(3)将n组用户输入的原始字串Qi与n组由用户输入生成的无害化字串Q’i归为n组待测试字串组Si(i=1,2,3……n);
三、SQL语法树生成:
(1)预设SQL语句的注入点模板,将待测试字串组Si(i=1,2,3,……n)按序同SQL语句注入点模板组合,生成包含用户输入的SQL语句和包含无害字串的SQL语句,分别输入SQL词法分析器;
(2)将词法分析结果输入SQL语法分析器;
(3)将语法分析结果生成两棵语法树,分别是基于用户输入字串Qi的语法树Ti以及基于无害化字串Q’i的语法树T’i;
四、SQL语法树比对:
(1)将两棵语法树Ti及T’i通过孩子-兄弟表示法转为等价的二叉树形式BTi及BT’i;
(2)对BTi及BT’i进行前序遍历,得到前序序列Fi,F’i,通过字符串比较算法对Fi与F’i进行比较,如发现不相同,则判定用户在进行SQL注入,直接转入步骤五;
(3)对BTi和BT’i进行中序遍历,得到中序序列Mi,M’i,通过字符串比较算法对Mi与M’i进行比较,如发现不相同,则判定用户在进行SQL注入,直接转入步骤五,否则认为该组测试字串通过本轮测试;
(4)更换组合的SQL语句模板,如已经组合了全部模板,则认为该组测试字串通过本次检测,否则转到步骤三继续测试;
(5)将i值加1,如i<=n转入步骤三继续测试,否则转入步骤五;
五、结果响应:
(1)如果有任意一组测试发现了用户有SQL注入的企图,则阻止该HTTP包,并产生一个警告,按系统配置显示在本地或远程屏幕上,同时记录进入日志文件;
(2)如果所有测试均没有发现用户有SQL注入的企图,则将该HTTP包放行。
有益效果
本发明分析对象均直接或间接来源于用户输入,这样可以最大限度还原用户本意,降低了误报率。同时基于SQL语法树分析,能够从根本上阻断进行SQL注入的可能,从而提高检测的准确率。
附图说明
图1为本发明的五个主要步骤;
图2为本发明主要步骤的流程图;
图3为用户输入为admin’OR‘1’=‘1’--时的SQL语法树;
图4为用户输入为admin’OR‘1’=‘1’--时的无害化输入的SQL语法树;
图5为语法树比对的流程图;
图6为用户输入为and’AND时的SQL语法树;
图7为用户输入为and’AND时的无害化输入的SQL语法树。
具体实施方式
下面结合附图,具体说明本发明的优选实施方式。
本实施例具体实现了本发明所述的一种SQL注入漏洞检测方法,包括以下步骤:
一、用户输入数据截获:
在用户输入数据截获步骤中,如何在完全获取到用户可能向应用程序提交参数的同时忽略与数据库无关的数据,是进行后续检测工作的关键。
在本实施例中,提供了两种方法获取输入数据:
1、标准的web应用总是要通过服务器来使其可以被访问(或者该应用本身就是服务器),而最常见的流行的WEB服务器总是为我们提供一组接口来对用户提交的数据进行再加工,即WEB服务器的核心组件,可以理解为WEB服务器的内核程序。
IIS/APACHE均提供这样的接口,例如ISAPI以及Apache Module,本实施例正是使用WEB服务器提供的接口来获取用户向服务器提交的所有参数。
2、本实施例同时还采用了另一种方法,即对WEB应用进行语法分析和预编译,在其调用与数据库交互的API处插入一段“交流程序”,这段程序的任务是在将参数提交数据库前先使用本实施例提供的检测方法进行检测,并根据检测程序的检测结果判断是否该继续向数据库提交这段参数。本质上就是一段对被保护程序的hook程序。
以上两种获取用户输入参数的方法各有侧重,通过服务器核心组件方式简单高效适应性强,而通过Hook程序则准确、全面;
获取用户输入的过程为:
(1)通过数据过滤程序获取用户向应用程序提交的HTTP包;
(2)将用户提交的GET、POST数据按URL、COOKIE、表单分类,并按类型提取用户数据包中提交的所有参数值;
(3)将获得的多组参数值按照URL编码和其他HTTP包指定编码方式解码参数值;
二、无害化输入生成:
(1)将步骤一中得到的n组参数值记为Q1,Q2……Qn,同时生成等量的空白字串Q’1,Q’2……Q’n;
(2)按照无害化规则将Qi字串转化为无害字串拷贝至字串Q’i,Qi仍保留原内容(i=1,2,……n);
无害化转换是计算机领域研究人员的一种常见技术手段,研究人员需要根据解决的问题制定无害化规则,然后进行转换。由于SQL语言中并没有全部由x构成的关键字,故我们将输入的字符替换成等长度的x字串以达到还原用户输入并做无害化处理的目的。同理,用户输入的数字被替换为等长度的数字3。本实施例中采用的无害化规则为:将数字转为等长度的数字3,将字符信息转为等长度的x,对空格予以保留。比如,对于输入admin’OR‘1’=‘1’--这样一个输入,替换后的无害输入为xxxxxx xx x3xxx3xxx。可以看到,由于字符及数字均被替换,该输入已经变为无害输入,但是又因为无害输入是由用户输入转换而来的,所以很好的还原了用户本意,因此本发明可以更容易区分攻击者与普通用户。
(3)将n组用户输入的原始字串Qi与n组由用户输入生成的无害化字串Q’i归为n组待测试字串组Si(i=1,2,3……n);
三、SQL语法树生成:
不同的SQL注入点采用的SQL注入手法是不同的,为了不漏掉任何一种情况,本实施方式预设了所有类型SQL语句的注入点模板,即:对下表中关键字的合法SQL语句表示形式中,可以插入用户输入数据的位置都视为注入点,并按编号标记。
Figure BDA0000067144010000061
Figure BDA0000067144010000062
Figure BDA0000067144010000071
表中,标号①为可能注入点的标记。
由于不同类型的SQL语句其注入点不同,故选择涵盖所有注入点类型的SQL语句,有:SELECT CREATE DROP ALTER INSERT UPDATE DELETE GRANT REVOKE这九种类型;对每种类型可能插入用户输入数据的地方进行标注,用户输入或者无害化输入只需要填充到有同样标注的地方即可构成相同类型的两句完整的SQL语句,确保不漏过任何注入点。
每次选择一个SQL语句模板,将待测试字串组Si(i=1,2,3,……n)按序同SQL语句模板组合,在同一标记处填充用户输入字串与无害化字串,生成两条SQL语句,以备下一步的SQL语法树生成使用。
如上文所述例子中,用户输入了admin’OR‘1’=‘1’--,无害化字串为xxxxxx xx x3xxx3xxx。我们选取SELECT语句作为模板:
用户输入:
Figure BDA0000067144010000072
无害化输入:
Figure BDA0000067144010000073
接下来为这两组输入构建两棵语法树。本实施例以SQL99为标准建立对标准SQL语句进行词法分析和语法分析的词法及语法分析器,同时新加入一种类型的语法节点ERRSTR,ERRSTR表示在语法分析中由用户输入部分引发了不能识别的关键字及未封闭的引号之后的一串字符串类型错误的节点,在进行语法树比较时ERRSTR可以被当做空节点。
通过建立的词法及语法分析器,可以生成对应的用户输入的SQL语法树以及无害化输入的SQL语法树。例如,对于以上用户输入,生成的语法树如图3所示,对应的无害化输入的语法树如图4所示。
四、对已经得到的两棵语法树树形进行比对,其流程如图5所示。由已经得到的两棵SQL语法树树形,通过下面所述方法对树形进行比对。如果用户在进行注入攻击,那么必然会改变SQL语句的语法树结构,这也就导致在进行两棵树比较时马上被识别出来。如果检测的结果二者树形匹配,则更换SQL语句模板继续测试。如果所有模板都通过了测试,则进行下一组输入的检测。
比对方法如下:
(1)将两棵语法树Ti及T’i通过孩子-兄弟表示法转为等价的二叉树形式BTi及BT’i,左枝代表兄弟右枝代表孩子。在转换过程中,原语法树中如果某节点有多个孩子则以从左至右的转换顺序为标准,这样即可生成等价的唯一二叉树。
(2)对BTi及BT’i进行前序遍历,得到前序序列Fi,F’i,通过字符串比较算法对Fi与F’i进行比较,如发现不相同,则判定用户在进行SQL注入,直接转入步骤五;本实施例中采用的字符串比较算法具体为改进KMP算法即改进的克努特——莫里斯——普拉特操作,该方法可以高效的进行字符串比对,从而提升程序效率。字串中ERRSTR节点可以视为空节点,不参与比较。
(3)对BTi和BT’i进行中序遍历,得到中序序列Mi,M’i,通过字符串比较算法对Mi与M’i进行比较,如发现不相同,则判定用户在进行SQL注入,直接转入步骤五,否则认为该组测试字串通过本轮测试;
(4)更换组合的SQL语句模板,如已经组合了全部模板,则认为该组测试字串通过本次检测,否则转到步骤三继续测试;
(5)将i值加1,如i<=n转入步骤三继续测试,否则转入步骤五;
很明显,步骤三所生成的两棵语法树不一致,所以可以判定存在SQL注入攻击。
五、结果响应
通过之前的检测结果,如果有任意一组测试发现了用户有SQL注入的企图,则阻断该HTTP包的继续传递,同时产生一个警告,按系统配置显示在本地或远程屏幕上,并记录进入日志文件,。如果所有测试均发现用户没有SQL注入的企图,则将该HTTP包放行。
以上实施例中给出了一个涉嫌注入输入的例子,下面给出一个正常输入的例子与一个含有SQL关键字但不是SQL注入攻击的例子。
假如用户在一个登录界面用户名字段输入了abcde,而密码字段输入了and’AND,则对应的HTTP包为:
通过用户输入数据截取步骤我们可以得到用户的输入数据为{username=abcde}以及{password=and’AND};
通过无害化输入生成步骤我们生成了两组待测字串,分别为{username=abcde,username=xxxxx}以及{password=and’AND,password=xxxxxxx};
首先选取第一组,我们不妨采用SELECT模板,生成了下面两句SQL语句:
用户输入:
SELECT * from user WHERE username=‘abcde’
无害化输入:
SELECT * from user WHERE username=‘xxxxx’
通过本发明的语法分析器生成SQL语法树,上面两组SQL语句的语法树完全相同,则可以认为用户的这组输入没有进行SQL注入。
接着选取第二组,同样采用SELECT模板,生成了下面两句SQL语句:
用户输入:
SELECT * from user WHERE username=‘and’AND’
无害化输入:
SELECT * from user WHERE username=‘xxxxxxx’
通过本发明的语法分析器,生成的两棵SQL语法树如图6和图7所示。图6为无害化输入生成的语法树,图7为用户输入生成的语法树,根据比较规则,可以看出虽然两棵语法树不完全相同,但是图7的语法树只是比图6多了一个ERRSTR的节点,而根据ERRSTR可以被当做空节点的规则来看,这两棵语法树在SQL语法树比较模块中的结果就完全相同了。所以同样认定本次用户输入没有进行SQL注入。
而通过用户输入的and’AND我们也能知道,虽然用户输入了SQL语法的关键字但是用户并没有SQL注入的企图,而往往通常的SQL注入检测程序就会认定含有SQL语法关键字的输入在进行SQL注入,那么就容易造成错误的判断。
另一方面,如果用户输入了一些不常用的关键字,或者用某些关键字替换了另外的关键字,如用OR代替AND的效果,往往造成一些SQL注入检测程序的漏判,而本发明从SQL语法语义入手,从根本上杜绝了用户进行SQL注入的可能。
为了说明本发明的内容及实施方法,给出了一个具体实施例。在实施例中引入细节的目的不是限制权利要求书的范围,而是帮助理解本发明所述方法。本领域的技术人员应理解:在不脱离本发明及其所附权利要求的精神和范围内,对最佳实施例步骤的各种修改、变化或替换都是可能的。因此,本发明不应局限于最佳实施例及附图所公开的内容。

Claims (7)

1.一种SQL注入漏洞检测方法,包括以下步骤:
一、用户输入数据截获:
(1)获取用户向应用程序提交的HTTP包;
(2)将用户提交的GET、POST数据按URL、COOKIE、表单分类,并按类型提取用户数据包中提交的所有参数值;
(3)将获得的多组参数值按照URL编码和其他HTTP包指定编码方式解码参数值;
二、无害化输入生成:
(1)将步骤一中得到的n组参数值记为Q1,Q2……Qn,同时生成等量的空白字串Q’1,Q’2……Q’n;
(2)按照无害化规则将Qi字串转化为无害字串拷贝至字串Q’i,Qi仍保留原内容(i=1,2,……n);
(3)将n组用户输入的原始字串Qi与n组由用户输入生成的无害化字串Q’i归为n组待测试字串组Si(i=1,2,3……n);
三、SQL语法树生成:
(1)预设SQL语句的注入点模板,将待测试字串组Si(i=1,2,3,……n)按序同SQL语句注入点模板组合,生成包含用户输入的SQL语句和包含无害字串的SQL语句,分别输入SQL词法分析器;
(2)将词法分析结果输入SQL语法分析器;
(3)将语法分析结果生成两棵语法树,分别是基于用户输入字串Qi的语法树Ti以及基于无害化字串Q’i的语法树T’i;
四、SQL语法树比对:
(1)将两棵语法树Ti及T’i通过孩子-兄弟表示法转为等价的二叉树形式BTi及BT’i;
(2)对BTi及BT’i进行前序遍历,得到前序序列Fi,F’i,通过字符串比较算法对Fi与F’i进行比较,如发现不相同,则判定用户在进行SQL注入,直接转入步骤五;
(3)对BTi和BT’i进行中序遍历,得到中序序列Mi,M’i,通过字符串比较算法对Mi与M’i进行比较,如发现不相同,则判定用户在进行SQL注入,直接转入步骤五,否则认为该组测试字串通过本轮测试;
(4)更换组合的SQL语句模板,如已经组合了全部模板,则认为该组测试字串通过本次检测,否则转到步骤三继续测试;
(5)将i值加1,如i<=n转入步骤三继续测试,否则转入步骤五;
五、结果响应:
(1)如果有任意一组测试发现了用户有SQL注入的企图,则阻止该HTTP包,并产生一个警告,按系统配置显示在本地或远程屏幕上,同时记录进入日志文件;
(2)如果所有测试均没有发现用户有SQL注入的企图,则将该HTTP包放行。
2.根据权利要求1所述的一种SQL注入漏洞检测方法,其特征在于,步骤二中所述的无害化规则为将数字转为等长度的数字3,将字符信息转为等长度的x,对空格予以保留。
3.根据权利要求1或2所述的一种SQL注入漏洞检测方法,其特征在于,步骤三种SQL语句的注入点模板为:选择涵盖所有注入点类型的SQL语句,有:SELECT CREATE DROP ALTER INSERT UPDATE DELETE GRANT REVOKE这九种类型;对每种类型可能插入用户输入数据的地方进行标注,用户输入或者无害化输入只需要填充到有同样标注的地方即可构成相同类型的两句完整的SQL语句。
4.根据权利要求1至3任一项所述的一种SQL注入漏洞检测方法,其特征在于,步骤三中所述词法分析器为以SQL99为标准建立的对标准SQL语句进行词法分析的词法分析器,及语法分析器,语法分析器为以SQL99为标准建立的对标准SQL语句进行语法分析的语法分析器。
5.根据权利要求1至4任一项所述的一种SQL注入漏洞检测方法,其特征在于,在语法树中加入一种类型的语法节点ERRSTR,ERRSTR表示在语法分析中由用户输入部分引发了不能识别的关键字及未封闭的引号之后的一串字符串类型错误的节点,在进行语法树比较时ERRSTR被当做空节点。
6.根据权利要求1至5任一项所述的一种SQL注入漏洞检测方法,其特征在于,获取用户输入数据的方法包括:
(1)通过WEB服务器提供的接口即WEB服务器的核心组件获取用户向服务器提交的所有参数;
(2)对WEB应用进行语法分析和预编译,在其调用与数据库交互的API处插入一段“交流程序”,这段程序的任务是在将参数提交数据库前先使用SQL注入漏洞检测方法进行检测,并根据检测程序的检测结果判断是否该继续向数据库提交这段参数。
7.根据权利要求1至6任一项所述的一种SQL注入漏洞检测方法,其特征在于,步骤四中字符串比较算法为改进KMP算法即改进的克努特——莫里斯——普拉特操作。
CN 201110153505 2011-06-09 2011-06-09 一种sql注入漏洞检测方法 Expired - Fee Related CN102185930B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 201110153505 CN102185930B (zh) 2011-06-09 2011-06-09 一种sql注入漏洞检测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 201110153505 CN102185930B (zh) 2011-06-09 2011-06-09 一种sql注入漏洞检测方法

Publications (2)

Publication Number Publication Date
CN102185930A true CN102185930A (zh) 2011-09-14
CN102185930B CN102185930B (zh) 2013-04-03

Family

ID=44572000

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 201110153505 Expired - Fee Related CN102185930B (zh) 2011-06-09 2011-06-09 一种sql注入漏洞检测方法

Country Status (1)

Country Link
CN (1) CN102185930B (zh)

Cited By (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102799830A (zh) * 2012-08-06 2012-11-28 厦门市美亚柏科信息股份有限公司 一种改进的sql注入漏洞检测方法
CN103023710A (zh) * 2011-09-21 2013-04-03 阿里巴巴集团控股有限公司 一种安全测试系统和方法
WO2013111027A1 (en) * 2012-01-24 2013-08-01 International Business Machines Corporation Dynamically scanning a web application through use of web traffic information
CN103338208A (zh) * 2013-07-16 2013-10-02 五八同城信息技术有限公司 一种sql注入防御的方法和系统
CN103455759A (zh) * 2012-06-05 2013-12-18 深圳市腾讯计算机系统有限公司 一种页面漏洞检测装置及检测方法
CN103544211A (zh) * 2013-09-04 2014-01-29 广东全通教育股份有限公司 一种将对象转化为sql语句的通用查询系统及方法
CN103559444A (zh) * 2013-11-05 2014-02-05 星云融创(北京)信息技术有限公司 一种sql注入检测方法及装置
CN103902606A (zh) * 2012-12-28 2014-07-02 腾讯科技(深圳)有限公司 一种数据库的数据处理方法和系统
CN104252511A (zh) * 2013-11-05 2014-12-31 深圳市华傲数据技术有限公司 一种sql命令编译方法和装置
CN104636667A (zh) * 2013-11-12 2015-05-20 梁佐云 基于云计算的注入漏洞检测系统及其注入方法
CN105024987A (zh) * 2014-04-30 2015-11-04 中国移动通信集团设计院有限公司 一种web业务日志的监测方法和装置
CN105046150A (zh) * 2015-08-06 2015-11-11 福建天晴数码有限公司 防止sql注入的方法及系统
CN105930453A (zh) * 2016-04-21 2016-09-07 乐视控股(北京)有限公司 重复性分析方法及装置
CN106227812A (zh) * 2016-07-21 2016-12-14 杭州安恒信息技术有限公司 一种数据库对象脚本安全风险的审计方法
CN106407803A (zh) * 2016-08-30 2017-02-15 北京奇虎科技有限公司 Sql注入漏洞的检测方法及装置
CN107292167A (zh) * 2017-06-27 2017-10-24 北京计算机技术及应用研究所 基于精简语法树的sql语句安全检测方法
CN107358098A (zh) * 2017-07-14 2017-11-17 北京安数云信息技术有限公司 基于插件的结构化查询语言sql注入检测方法和装置
CN107392027A (zh) * 2017-07-13 2017-11-24 福建中金在线信息科技有限公司 一种网站漏洞测试方法、测试系统、电子设备及存储介质
CN107526968A (zh) * 2017-08-18 2017-12-29 郑州云海信息技术有限公司 一种基于语法分析的sql防注入方法和装置
CN107766381A (zh) * 2016-08-22 2018-03-06 北京京东尚科信息技术有限公司 数据查询方法、系统及电子设备
CN108632263A (zh) * 2018-04-25 2018-10-09 杭州闪捷信息科技股份有限公司 一种sql注入点的检测方法
CN109582352A (zh) * 2018-10-19 2019-04-05 北京硅心科技有限公司 一种基于双ast序列的代码补全方法及系统
CN111045679A (zh) * 2019-01-09 2020-04-21 国家计算机网络与信息安全管理中心 一种sql注入的检测和防御方法、装置及存储介质
CN111460241A (zh) * 2020-04-26 2020-07-28 甬矽电子(宁波)股份有限公司 一种数据查询方法、装置、电子设备及存储介质
CN113139183A (zh) * 2020-01-17 2021-07-20 深信服科技股份有限公司 一种检测方法、装置、设备及存储介质
CN115185525A (zh) * 2022-05-17 2022-10-14 贝壳找房(北京)科技有限公司 数据倾斜代码块定位方法、装置、设备、介质及程序产品

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104123497A (zh) * 2014-07-04 2014-10-29 北京神州绿盟信息安全科技股份有限公司 一种防御sql注入的方法、装置及系统
CN110225029B (zh) * 2019-06-10 2021-08-17 北京达佳互联信息技术有限公司 注入攻击检测方法、装置、服务器及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101267357A (zh) * 2007-03-13 2008-09-17 北京启明星辰信息技术有限公司 一种sql注入攻击检测方法及系统
CN101312393A (zh) * 2007-05-24 2008-11-26 北京启明星辰信息技术有限公司 一种sql注入漏洞检测方法及系统
CN101388763A (zh) * 2007-09-12 2009-03-18 北京启明星辰信息技术有限公司 一种支持多种数据库类型的sql注入攻击检测系统
CN101425937A (zh) * 2007-11-02 2009-05-06 北京启明星辰信息技术有限公司 一种适于高速局域网环境的sql注入攻击检测系统
US7640264B1 (en) * 2005-09-23 2009-12-29 Emc Corporation System and methods for querying a report database
CN102045319A (zh) * 2009-10-21 2011-05-04 中国移动通信集团山东有限公司 Sql注入攻击检测方法及其装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7640264B1 (en) * 2005-09-23 2009-12-29 Emc Corporation System and methods for querying a report database
CN101267357A (zh) * 2007-03-13 2008-09-17 北京启明星辰信息技术有限公司 一种sql注入攻击检测方法及系统
CN101312393A (zh) * 2007-05-24 2008-11-26 北京启明星辰信息技术有限公司 一种sql注入漏洞检测方法及系统
CN101388763A (zh) * 2007-09-12 2009-03-18 北京启明星辰信息技术有限公司 一种支持多种数据库类型的sql注入攻击检测系统
CN101425937A (zh) * 2007-11-02 2009-05-06 北京启明星辰信息技术有限公司 一种适于高速局域网环境的sql注入攻击检测系统
CN102045319A (zh) * 2009-10-21 2011-05-04 中国移动通信集团山东有限公司 Sql注入攻击检测方法及其装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
陈小兵 等: "SQL注入攻击及其防范检测技术研究", 《计算机工程与应用》 *

Cited By (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103023710A (zh) * 2011-09-21 2013-04-03 阿里巴巴集团控股有限公司 一种安全测试系统和方法
CN103023710B (zh) * 2011-09-21 2016-06-08 阿里巴巴集团控股有限公司 一种安全测试系统和方法
GB2515663A (en) * 2012-01-24 2014-12-31 Ibm Dynamically scanning a web application through use of web traffic information
WO2013111027A1 (en) * 2012-01-24 2013-08-01 International Business Machines Corporation Dynamically scanning a web application through use of web traffic information
US9213832B2 (en) 2012-01-24 2015-12-15 International Business Machines Corporation Dynamically scanning a web application through use of web traffic information
US9208309B2 (en) 2012-01-24 2015-12-08 International Business Machines Corporation Dynamically scanning a web application through use of web traffic information
GB2515663B (en) * 2012-01-24 2017-08-30 Ibm Dynamically scanning a web application through use of web traffic information
CN103455759A (zh) * 2012-06-05 2013-12-18 深圳市腾讯计算机系统有限公司 一种页面漏洞检测装置及检测方法
CN103455759B (zh) * 2012-06-05 2017-03-15 深圳市腾讯计算机系统有限公司 一种页面漏洞检测装置及检测方法
CN102799830A (zh) * 2012-08-06 2012-11-28 厦门市美亚柏科信息股份有限公司 一种改进的sql注入漏洞检测方法
CN102799830B (zh) * 2012-08-06 2015-06-17 厦门市美亚柏科信息股份有限公司 一种改进的sql注入漏洞检测方法
CN103902606A (zh) * 2012-12-28 2014-07-02 腾讯科技(深圳)有限公司 一种数据库的数据处理方法和系统
CN103902606B (zh) * 2012-12-28 2018-07-06 腾讯科技(深圳)有限公司 一种数据库的数据处理方法和系统
CN103338208B (zh) * 2013-07-16 2017-05-24 五八同城信息技术有限公司 一种sql注入防御的方法和系统
CN103338208A (zh) * 2013-07-16 2013-10-02 五八同城信息技术有限公司 一种sql注入防御的方法和系统
CN103544211A (zh) * 2013-09-04 2014-01-29 广东全通教育股份有限公司 一种将对象转化为sql语句的通用查询系统及方法
CN103559444B (zh) * 2013-11-05 2017-08-04 星云融创(北京)科技有限公司 一种sql注入检测方法及装置
CN103559444A (zh) * 2013-11-05 2014-02-05 星云融创(北京)信息技术有限公司 一种sql注入检测方法及装置
CN104252511A (zh) * 2013-11-05 2014-12-31 深圳市华傲数据技术有限公司 一种sql命令编译方法和装置
CN104636667A (zh) * 2013-11-12 2015-05-20 梁佐云 基于云计算的注入漏洞检测系统及其注入方法
CN105024987B (zh) * 2014-04-30 2018-05-22 中国移动通信集团设计院有限公司 一种web业务日志的监测方法和装置
CN105024987A (zh) * 2014-04-30 2015-11-04 中国移动通信集团设计院有限公司 一种web业务日志的监测方法和装置
CN105046150A (zh) * 2015-08-06 2015-11-11 福建天晴数码有限公司 防止sql注入的方法及系统
CN105046150B (zh) * 2015-08-06 2017-10-17 福建天晴数码有限公司 防止sql注入的方法及系统
CN105930453A (zh) * 2016-04-21 2016-09-07 乐视控股(北京)有限公司 重复性分析方法及装置
CN106227812B (zh) * 2016-07-21 2019-06-21 杭州安恒信息技术股份有限公司 一种数据库对象脚本安全风险的审计方法
CN106227812A (zh) * 2016-07-21 2016-12-14 杭州安恒信息技术有限公司 一种数据库对象脚本安全风险的审计方法
CN107766381A (zh) * 2016-08-22 2018-03-06 北京京东尚科信息技术有限公司 数据查询方法、系统及电子设备
CN106407803A (zh) * 2016-08-30 2017-02-15 北京奇虎科技有限公司 Sql注入漏洞的检测方法及装置
CN106407803B (zh) * 2016-08-30 2019-06-14 北京奇虎科技有限公司 Sql注入漏洞的检测方法及装置
CN107292167A (zh) * 2017-06-27 2017-10-24 北京计算机技术及应用研究所 基于精简语法树的sql语句安全检测方法
CN107292167B (zh) * 2017-06-27 2020-03-10 北京计算机技术及应用研究所 基于精简语法树的sql语句安全检测方法
CN107392027A (zh) * 2017-07-13 2017-11-24 福建中金在线信息科技有限公司 一种网站漏洞测试方法、测试系统、电子设备及存储介质
CN107358098A (zh) * 2017-07-14 2017-11-17 北京安数云信息技术有限公司 基于插件的结构化查询语言sql注入检测方法和装置
CN107526968A (zh) * 2017-08-18 2017-12-29 郑州云海信息技术有限公司 一种基于语法分析的sql防注入方法和装置
CN108632263A (zh) * 2018-04-25 2018-10-09 杭州闪捷信息科技股份有限公司 一种sql注入点的检测方法
CN109582352A (zh) * 2018-10-19 2019-04-05 北京硅心科技有限公司 一种基于双ast序列的代码补全方法及系统
CN111045679A (zh) * 2019-01-09 2020-04-21 国家计算机网络与信息安全管理中心 一种sql注入的检测和防御方法、装置及存储介质
CN111045679B (zh) * 2019-01-09 2024-02-23 国家计算机网络与信息安全管理中心 一种sql注入的检测和防御方法、装置及存储介质
CN113139183A (zh) * 2020-01-17 2021-07-20 深信服科技股份有限公司 一种检测方法、装置、设备及存储介质
CN113139183B (zh) * 2020-01-17 2023-12-29 深信服科技股份有限公司 一种检测方法、装置、设备及存储介质
CN111460241A (zh) * 2020-04-26 2020-07-28 甬矽电子(宁波)股份有限公司 一种数据查询方法、装置、电子设备及存储介质
CN111460241B (zh) * 2020-04-26 2024-01-23 甬矽电子(宁波)股份有限公司 一种数据查询方法、装置、电子设备及存储介质
CN115185525A (zh) * 2022-05-17 2022-10-14 贝壳找房(北京)科技有限公司 数据倾斜代码块定位方法、装置、设备、介质及程序产品

Also Published As

Publication number Publication date
CN102185930B (zh) 2013-04-03

Similar Documents

Publication Publication Date Title
CN102185930B (zh) 一种sql注入漏洞检测方法
Jang et al. Detecting SQL injection attacks using query result size
CN107292170B (zh) Sql注入攻击的检测方法及装置、系统
Lai et al. Static analysis of integer overflow of smart contracts in ethereum
US20220019658A1 (en) Systems and methods for improving accuracy in recognizing and neutralizing injection attacks in computer services
Yeole et al. Analysis of different technique for detection of SQL injection
CN113139192B (zh) 基于知识图谱的第三方库安全风险分析方法及系统
CN104331663A (zh) web shell的检测方法以及web服务器
Dalai et al. Neutralizing SQL injection attack using server side code modification in web applications
Wang et al. Detection method of SQL injection attack in cloud computing environment
Zhang et al. Efficiency and effectiveness of web application vulnerability detection approaches: A review
Björklund et al. Efficient incremental evaluation of succinct regular expressions
Zhao et al. A new framework of security vulnerabilities detection in PHP web application
Chenyu et al. Defending SQL injection attacks based-on intention-oriented detection
Yiğit et al. SQL injection attacks detection & prevention techniques
Graupner et al. Automated parsing and interpretation of identity leaks
Aliero et al. Review on SQL injection protection methods and tools
Chaki et al. A Survey on SQL Injection Prevention Methods
Mahapatra et al. A survey of sq1 injection countermeasures
Shi et al. A new approach for SQL-injection detection
Aliero et al. Classification of Sql Injection Detection And Prevention Measure
Zhang et al. Research on SQL injection vulnerabilities and its detection methods
Chen et al. SynthDB: Synthesizing Database via Program Analysis for Security Testing of Web Applications.
Gupta et al. Analysis of NoSQL database vulnerabilities
Wu et al. Test SQL injection vulnerabilities in web applications based on structure matching

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20130403

Termination date: 20140609