关于冰盾 | 使用条款 | 网站地图
 
SQL注入的攻击分析与防范
SQL注入的攻击分析与防范
作者:冰盾防火墙 网站:www.bingdun.com 日期:2014-12-07
 
 摘要: 在Web系统中,SQL注入是一种经常出现的漏洞。攻击者利用此漏洞通过SQL语句对数据库进行直接地访问,严重威胁系统安全。本文由SQL注入原理着手,对产生SQL注入原因以及常见的SQL注入攻击方式进行了探究,并提出有效防范SQL注入攻击的对策,旨在为一些Web应用在防注入方面提供指导和帮助。 
中国论文网 http://www.xzbu.com/7/view-4810565.htm
  Abstract: SQL injection is a common loophole in Web system, the attacker can directly access database through the SQL statement, using this loophole, which caused seriously hidden trouble of safety. This paper analyzed the principle of SQL injection firstly, and then made exploration on SQL injection reasons and common ways of SQL injection attacks, finally, put forward the countermeasures to SQL injection attack,so as to provide guidance for SQL injection prevention in Web applications system. 
  关键词: SQL注入;原理;防范 
  Key words: SQL injection;principle;prevention 
  中图分类号:TP30 文献标识码:A 文章编号:1006-4311(2013)07-0211-02 
  1 SQL注入的原理以及产生SQL注入的原因 
  1.1 SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语法里的一些组合,通过执行SQL语句进而执行攻击者所要的操作,其主要原因是程序没有细致地过滤用户输入的数据,致使非法数据侵入系统。 
  1.2 根据相关技术原理,SQL注入可以分为平台层注入和代码层注入。前者由不安全的数据库配置或数据库平台的漏洞所致;后者主要是由于程序员对输入未进行细致地过滤,从而执行了非法的数据查询。基于此,SQL注入的产生原因通常表现在以下几方面:①不当的类型处理;②不安全的数据库配置;③不合理的查询集处理;④不当的错误处理;⑤转义字符处理不合适;⑥多个提交处理不当。 
  2 SQL注入技术探讨 
  鉴于某些应用存在SQL注入漏洞,攻击者能够利用这些漏洞窃取用户数据。笔者参照各类注入方式,对以下注入技术进行详细的说明: 
  2.1 强制产生错误。对数据库类型、版本等信息进行识别是此类型攻击的动机所在。它的目的是收集数据库的类型、结构等信息为其他类型的攻击做准备,可谓是攻击的一个预备步骤。利用应用程序服务器返回的默认错误信息而取得漏洞信息。 
  2.2 采用非主流通道技术。除HTTP响应外,能通过通道获取数据,然而,通道大都依赖与数据库支持的功能而存在,所以这项技术不完全适用于所有的数据库平台。SQL注入的非主流通道主要有E-mail、DNS以及数据库连接,基本思想为:先对SQL查询打包,然后借助非主流通道将信息反馈至攻击者。 
  2.3 使用特殊的字符。不同的SQL数据库有许多不同是特殊字符和变量,通过某些配置不安全或过滤不细致的应用系统能够取得某些有用的信息,从而对进一步攻击提供方向。 
  2.4 使用条件语句。此方式具体可分为基于内容、基于时间、基于错误三种形式。一般在经过常规访问后加上条件语句,根据信息反馈来判定被攻击的目标。 
  2.5 利用存储过程。通过某些标准存储过程,数据库厂商对数据库的功能进行扩展的同时,系统也可与进行交互。部分存储过程可以让用户自行定义。通过其他类型的攻击收集到数据库的类型、结构等信息后,便能够建构执行存储过程的命令。这种攻击类型往往能达到远程命令执行、特权扩张、拒绝服务的目的。 
  2.6 避开输入过滤技术。虽然对于通常的编码都可利用某些过滤技术进行SQL注入防范,但是鉴于此种情况下也有许多方法避开过滤,一般可达到此目的的技术手段包括SQL注释和动态查询的使用,利用截断,URL编码与空字节的使用,大小写变种的使用以及嵌套剥离后的表达式等等。借助于此些手段,输入构思后的查询可以避开输入过滤,从而攻击者能获得想要的查询结果。 
  2.7 推断技术。能够明确数据库模式、提取数据以及识别可注入参数。此种方式的攻击通过网站对用户输入的反馈信息,对可注入参数、数据库模式推断,这种攻击构造的查询执行后获得的答案只有真、假两种。基于推断的注入方式主要分为时间测定注入与盲注入两种。前者是在注入语句里加入语句诸如“waitfor 100”,按照此查询结果出现的时间对注入能否成功和数据值范围的推导进行判定;后者主要是“and l=l”、“and l=2”两种经典注入方法。这些方式均是对一些间接关联且能取得回应的问题进行提问,进而通过响应信息推断出想要信息,然后进行攻击。 
  3 SQL注入防范分析 
  为了通过技术操作与配置修复SQL注入,降低SQL注入的风险系数,笔者对代码层的防范和平台层的防范进行了深入的探究: 
  3.1 规范化 避开输入验证与编码输出的技术操作,就是先对输入进行编码后发送至应用,然后进行解码和解释以符合攻击者的目标。如,单引号的编码方式是多种多样,不易对应用的解释方式进行预测,因此就可能绕过验证。操作人员可将规范化作为一类输入验证的方法。拒绝不按规范格式操作的所有输入就是一种简单的技术操作。   3.2 编码输出 验证应用所接受的输入是应用程序的基本操作之一。除此以外,应用程序的所有部分(或所有模块)之间传输的内容必须编码,特别是在SQL注入的环境里,我们一定要进行编码,以便确保数据库接收的输入内容不会被误操作。但是,该方式并不是必须进行编码的唯一情形。 
  3.3 输入验证 输入验证是指测试应用接收到的输入以确保其符合应用中定义的标准过程。通常分为黑名单验证以及白名单验证两种不同类型的输入验证方法。其一方面可以直接作为一个参数类型的验证;除此之外,也可以通过业务逻辑去验证输入或者是利用正则表达式。 
  3.4 额外的部署 此技术主要涵盖将一些无关紧要的信息泄露最小化,对网络访问控制进行配置,对数据库服务器以及Web应用服务器进行单独部署,对Web服务器冗余日志进行改善,并借助漏洞扫描程序来逐一排查Web应用等一系列技术操作,具体可分为独立部署Web应用服务器和数据库服务器、配置网络访问控制、借助新型漏洞扫描程序对Web应用进行全方位的检查、最小化不必要的信息泄露等。特别是不必要的信息泄露是某些注入的前提,所以我们一定要采取必要的措施,诸如为DNS反向查询使用虚拟主机名称,利用空的默认Web站点以及隐藏错误的信息等。 
  3.5 使用运行时保护 这种防范通常是通过部署Web应用防火墙,数据库防火墙以及入侵检测系统等对Web应用进行保护,其主要应用于降低或预防、检测一些不必重编译容易遭受到攻击的应用的源代码即可部署的SQL注入。该技术主要是Web服务器和部署框架的软件或是针对Web或应用平台的用于修改和扩展特性的技术。在不能对代码进行修改的情况下,使用运行保护不失为一种有效的防范手段。 
  3.6 通过设计降低或避免SQL注入危险 该方法大都通过许多较为独立的设计技术来降低SQL注入危险。例如:我们对敏感信息进行附加控制;可以使用存储过程在数据库层中取得相对较细的粒度许可技术;也可以通过数据访问抽象层,进而运用安全的数据访问技术武装整个应用程序,通过设计的方式,能够在很大程度上减轻或避免SQL注入的危险。 
  3.7 保证数据库安全 运用某些额外方式来强化数据库的安全性能。首先锁定应用数据,通过最小权限登录数据库,撤销冗余的公共许可,运用加密功能加密处理敏感数据,并维护审查跟踪;锁定数据库及其额外的系统,约束即席查询,加强对验证周边严格控制,操作系统账户设置最低权限,及时更新数据库补丁。 
  3.8 使用参数化语句 致使SQL注入的一个重要因素是经过SQL查询拟建为字符串,将其发送至数据库执行。在应用中,通过参数化语句能够解决许多SQL注入问题。然而,这种方法主要是提供潜在的非安全参数给数据库,虽然参数化语句在给数据库传递内容的时候不会进行修改,可是倘若在函数的实现或在存储过程中,动态的SQL运用在正在调用的数据库功能,那么出现SQL注入的可能性也是非常高的。 
  4 结束语 
  随着Web的推广及应用,SQL注入逐渐成为一种对Web应用攻击的主要形式之一,而且当代的SQL注入攻击技术层出不穷,网络也在实时更新并推出SQL注入漏洞的操作工具,信息安全维护面临更为严峻的考验。如何从根本上进行SQL注入防御,降低SQL注入风险具有极其重要的现实意义。同时,SQL注入攻击方式在不断地产生,相信SQL注入和防范在Web应用安全方面将是安全人员持续探讨与研究的话题。
 

 
最新内容:
网络攻击与防范的探讨[2014-12-07]
巧设路由器实例 有效防范DDOS攻击[2014-12-07]
解析针对个人用户的DDoS自杀式攻击[2014-12-07]
最新技术 黑客用DNS翻新DDOS攻击手法[2014-12-07]
揭开DDoS攻防的神秘面纱[2014-12-07]
利用反弹技术进行DDoS攻击的分析[2014-12-07]
相关内容:

合作伙伴: 黑基网 补天科技 威盾科技 站长下载 新飞金信 北京电信 ZOL应用下载
中华人民共和国增值电信业务经营许可证京ICP备14024464 公安备案号 京1081234 
版权所有©2003-2016 冰盾防火墙  www.BingDun.com 法律声明
服务热线:(010)51661195