[发明专利]一种SQL注入漏洞检测方法无效
申请号: | 201110153505.8 | 申请日: | 2011-06-09 |
公开(公告)号: | CN102185930A | 公开(公告)日: | 2011-09-14 |
发明(设计)人: | 金福生;宋挺;戴银涛;牛振东;韩翔宇 | 申请(专利权)人: | 北京理工大学 |
主分类号: | H04L29/08 | 分类号: | H04L29/08;G06F17/30;H04L29/06 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 100081 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明涉及一种SQL注入漏洞检测方法,包括以下步骤:一、用户输入数据截获;二、无害化输入生成;三、进行SQL词法分析和语法分析,生成SQL语法树,分别是基于用户输入字串的语法树以及基于无害化字串的语法树;四、SQL语法树比对,如果相同认为该组测试字串通过本轮测试;五、结果响应:如果发现了用户有SQL注入的企图,则阻止该HTTP包,否则将该HTTP包放行。本发明分析对象均直接或间接来源于用户输入,这样可以最大限度还原用户本意,降低了误报率。同时基于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包放行。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京理工大学,未经北京理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201110153505.8/,转载请声明来源钻瓜专利网。