SQL注入攻击行为的产生原理与工作过程

2018-01-17 09:55卜旭
电子技术与软件工程 2017年23期
关键词:数据库

摘 要 近几年计算机技术以及基于Web网页开发技术的发展,各种各样针对Web网页的攻击行为也高频发生,其中SQL注入攻击行为是所有攻击行为中经常使用的一种攻击行为。SQL注入攻击简单来说就是从普通的端口进行访问,以达到对用户数据库中的数据信息进行扫描或盗取等攻击和破坏行为。SQL注入攻击行为表面上看,通常和一般的Web页面访问过程并无实质性的差异,如果程序设计人员在数据发送给SQL查询之前没有对其发送的数据参数进行有效验证,这种情况就可能出现SQL注入漏洞。本文是针对SQL注入攻击行为的产生原理和工作过程进行详细分析与研究。

【关键词】SQL注入 Web 数据库 攻击流程

1 SQL注入攻击与特点

1.1 SQL注入攻击概念

SQL注入攻击是指黑客寻找web应用程序中的漏洞或用户能够提交及篡改的数据页面,精心构造恶意的特殊SQL语句,把这些特殊的SQL指令语句插入到系统中原有的SQL语句中,通过执行这些语句获取用户密钥等敏感信息,还能获取主机管理员权限以攻击原有系统。

1.2 SQL注入攻击特点

针对于个人用户而言,经常使用到的个人电脑防范措施就是安装防火墙,然而对于SQL注入攻击来说,其对SQL注入漏洞是没有防范的有效措施。在通常情況下防火墙只是对合法用户在进行服务器端数据访问时允许Web服务器的正常连接,但是如果有SQL注入漏洞出现,则攻击者就会利用漏洞获得服务器的访问权限。因此,根据SQL注入攻击行为通常对用户数据库的攻击以及获得服务器端的访问权限,可以看出SQL注入行为具有以下三个特点:

1.2.1 普遍性

利用SQL语句和语法来进行SQL的攻击过程,因此当Web运行的应用程序一旦忘记对获得的SQL语句进行严密的过滤,就有可能造成SQL注入漏洞的出现。

1.2.2 技术要求低

在SQL注入技术出现后,由于其方便操作和可以避开防火墙进行攻击,形成注入漏洞,黑客利用该特点开发了各种SQL注入工具,这些工具可以轻易的对已经存在有SQL漏洞Web应用程序或网站进行有效攻击,从而获得系统控制权和使用权。

1.2.3 危害性大

在整个攻击过程中,一旦SQL攻击获得成功,等于系统的控制大门敞开,这样就会对用户造成无法避免的损失,例如文件篡改、密码丢失等情况,严重的会造成巨大的经济损失。

2 SQL注入产生原理

SQL注入攻击行为是指黑客可以不经过过滤机制实现访问计算机端口,实现控制远程服务器上的数据库。目前,开发人员在进行Web网站或网页开发的过程中,绝大多数的开发人员都使用SQL语言来存储相应的应用程序在运行过程中所需要的应用数据信息,而存放这些应用程序中涉及的数据也是利用例如像MySQL这样的SQL数据库。跟其他语言一样,SQL语法允许数据库命令和用户数据混合在一起。如果开发人员对SQL语言使用不严谨,用户数据可能会被解释成命令。这样远程用户不但能向Web应用程序输入数据,而且还能在数据库上执行任意命令。因此对于SQL注入攻击行为其产生的原理如下所描述[1]:

(1)SQL命令可查询、插入、更新、删除等,命令的串接,而以分号字符为不同命令的区别。

(2)SQL命令对传入的字符串参数使用单引号字符,但连续2个单引号字符,在SQL数据库中,则视为字符串中的一个单引号字符。

(3)SQL命令中,可以注入注解,连续2个减号字符 -- 后的文字为注解,或“/*”与“*/”所包起来的文字为注解。

(4)如果在组合SQL的命令字符串时,未针对单引号字符进行替换处理的话,会导致该字符变量在数输入命令字符串时,被恶意篡改原来的SQL语法的作用,形成了新的语法。

3 SQL注入攻击思路与攻击过程

3.1 SQL注入攻击思路描述

在SQL攻击过程中,其攻击的目的主要是通过寻找网站或网页中存在的漏洞作为注入点,然后设置注入SQL语句来实现对用户端端口的控制,从而获得远程服务器端的数据访问权限,达到对用户存储在数据库中的数据信息进行盗取或篡改的破坏行为。由此,SQL注入攻击行为可以总结如下大体思路:

(1)攻击者访问存在SQL注入的网站,寻找注入点,一般使用单引号进行注入点测试。

(2)攻击者构造注入语句,使注入语句与代码中的SQL语句结合生成新的语句,可是使用判断语句and。

(3)新的SQL语句被提交到数据库中,新的SQL语句与数据库中的语句进行了拼接,从而产生了攻击者想要的执行语句。

(4)数据库执行了新的SQL语句,从而引发了原本不是系统管理员想要执行的结果,这样就产生了SQL注入。

3.2 SQL注入攻击过程分析

在整个SQL注入攻击过程中,可以分为以下几个阶段:

3.2.1 SQL注入漏洞的判断

SQL注入一般存在于网址后带有数字参数的动态网页中,有的动态网页中可能只存在一个参数,有的有多个参数,有的是数字型参数,有的是字符串型参数,不能一概而论。总之一旦是带有参数的动态网页访问了数据库,那么就有可能存在SQL注入。如果开发人员没有安全意识,没有添加过滤机制,存在SQL注入的可能性就非常大。

3.2.2 分析数据库服务器类型

ACCESS与SQL SERVER是最常使用的数据库服务器,虽然它们都支持T-SQL标准,但还有差异之处,并且不同的数据库有不同的攻击措施,必须要区别对待。

3.2.3 发现Web虚拟目录

找到Web虚拟目录,才可以确定放置php木马的位置,进而得到user 权限。

3.2.4 上传木马

放入Web虚拟目录的Scripts下,木马病毒可以通过浏览器执行它,从而得到系统的用户权限,实现对系统的初步控制。

3.2.5 得到系统的管理员权限

木马只有用户权限,要想获取对系统的完全控制,还要有系统的管理员权限。

通过分析可以看出,针对SQL注入攻击流程是一个有着有序的注入攻击行为。由开始的漏洞判断到获得系统的管理权限。利用图1可以描述整个SQL注入攻击流程。

4 总结

从应用层到数据存储层的开发和管理行为会导致SQL注入问题,我们讨论了动态字符串的构造以及将SQL查询组合成一个字符串,并与用户提供的输入连接操作引发SQL注入,因为攻击者可以修改SQL查询的逻辑和结构,进而执行完全违背开发人员初衷的数据库命令。

参考文献

[1]刘文生,乐德广,刘伟.SQL注入攻击与防御技术研究[J].信息网络安全,2015(09).

[2]张博.SQL注入攻击与检测技术研究[J].信息安全与通信保密,2010(05).

[3]余志高,周国祥.Web应用中SQL注入攻击研究[J].信息安全与通信保密,2010(04).

[4]齐林,王静云,蔡凌云,陈宁波.SQL注入攻击检测与防御研究[J].河北科技大学学报,2012(06).

[5]刘文晋.远程渗透测试中的SQL注入攻击技术研究[D].北京交通大学,2009.

作者简介

卜旭(1986-),男,现为长春建筑学院电气信息学院助教。主要研究方向为计算机软件设计、网络安全。

作者单位

长春建筑学院电气信息学院 吉林省长春市 130607endprint

猜你喜欢
数据库
超星数据库录入证
本刊加入数据库的声明
两种新的非确定数据库上的Top-K查询
国外数据库高被引论文排行TOP10
国内主要期刊数据库