Web页面中SQL注入攻击的原理、过程以及预防对策

2017-04-15 05:42国网宜昌供电公司信息通信分公司
电子世界 2017年3期
关键词:黑客漏洞语句

国网宜昌供电公司信息通信分公司 李 杨

国网宜昌供电公司客户服务中心计量室 周婧姝

Web页面中SQL注入攻击的原理、过程以及预防对策

国网宜昌供电公司信息通信分公司 李 杨

国网宜昌供电公司客户服务中心计量室 周婧姝

SQL注入攻击属于一种数据库安全攻击手段,该攻击手段是从正常的WWWW端口进入数据库的,与常规Web页面访问几乎一致,所以很难被数据安全系统发现,具有较强的隐蔽性。为了提高数据库的安全系数,就需要针对SQL注入攻击采取有效的预防措施。文章对SQL注入攻击原理及过程进行了分析,并提出了有效的预防对策,对构建稳定、安全的网络环境具有重要意义。

Web页面;SQL注入攻击;原理;过程;预防对策

从当前应用程序编写使用最为广泛的网络结构模式为B/S,具有开发简单、维护方便、使用快捷等众多优势。但是,该网络结构模式也具有较大的缺陷,程序员在编写代码的时候,往往会忽略掉对Web页面所输入数据合法性的判断,为网络不法分子留下了SQL注入攻击路径,严重威胁了数据库安全,所以必须采取有效的预防对策来降低SQL注入攻击发生概率。

1.Web页面中SQL注入攻击的原理

造成Web页面中SQL注入攻击的最根本原因,是没有对Web输入数据的合法性进行有效判断。根据SQL注入攻击原理的不同,可以将其其分为三种攻击方式,分别为登录表单注入攻击、修改Cookie内容注入攻击以及盲目注入攻击,下面对这三种攻击方式的原理进行详细分析。

1.1 登录表单注入攻击

攻击者在登录时将精心构造的恶意SQL语句伪装进正常登陆数据内提交,此时系统与服务器防火墙并不能有效识别数据的合法性,所以服务器便会执行修改后的恶意SQL语句,造成SQL注入攻击,导致程序的实际运行结果发生了变化,与预期运行结果之间存在较大偏差,甚至会出现数据泄露与数据篡改现象,严重威胁了数据的安全性及完整性。

1.2 修改Cookie内容注入攻击

Cookie是以文件形式存在于客户端计算机中的,能够生成Web日志,文件内容为状态信息,对Web应用程序起到记录作用,用户可以根据自己需求,利用Cookie文件将Web应用程序状态信息进行恢复。Cookie文件的存可以作为黑客入侵的载体,攻击者在进入到客户端计算机系统之后,可以随意篡改Cookie文件内容,将攻击指令输入到状态信息中,当用户想利用Cookie文件恢复Web应用程序状态信息,在构造SQL查询语句时,Web应用程序便会对攻击指令进行回应,进而造成Web页面出现SQL注入攻击现象[1]。

1.3 盲目注入攻击

盲目注入攻击是一种没有明确目标的SQL注入攻击方式,是利用SQL本身存在的漏洞来实现的。通过向服务器反复输入数据,构造SQL查询字串,服务器便会按照这些SQL字串运行,向客户端传递错误信息,此时客户端便会对服务器运行做出反馈。黑客通过对客户端所得到的错误数据进行分析,从中提取有价值数据,通过多次测试、验证,从数据库中找出敏感程度较高的数据,进而找出SQL注入漏洞,进行SQL注入攻击。

2.Web页面中SQL注入攻击的过程

2.1 寻找SQL注入漏洞的链接

通常情况下,Web页面都会存在外部链接,链接是以list. asp?id=的形式存在的,由链接形式可得,链接是调动SQL语句查询数据库所形成的,当链接后半段的参数没有得到有效过滤,或者是没有对输入数据的合法性进行有效判断时,便可能会出现SQL注入攻击现象。借助于搜索引擎,黑客可以利用链接的这种特性,通过不断尝试找出漏洞链接。并且当使用统一资源定位符对网页进行访问时,如果需要对数据进行动态查询,便很容易出现SQL注入漏洞链接[2]。

2.2 检测SQL注入漏洞

在找到SQL注入漏洞的链接之后,通过多次输入数据,依据浏览器反馈信息,对所得到的数据进行分析,从数据库中找出敏感程度较高的数据,进而检测到SQL注入漏洞。检测SQL注入漏洞的方法,一般都是在连接末尾加入字符“或”,根据反馈得到的错误信息得到数据库的具体类型,然后在链接末尾加入“and 1=1”和“and 1=2”,当前半段得到正常回应,后半段没内容反馈,并返回上级操作,此时,Web网页中就会存在SQL注入漏洞。

2.3 获取表名以及字段

一般情况下,存储在数据库中的表名以及字段,都是按照一定的规律排布的,所以可以利用数据库获取表名以及字段。在检测得到SQL注入漏洞后,黑客通过构造SQL字串,借助网上注入工具,在之前所得的的数据库中进行查找,能够从中获取管理员的表名以及字段等有效信息,然后再利用这些信息,便可以破解出管理员密码,获取管理权限。

2.4 得到Web后台管理入口

当攻击者得到管理员密码,通过身份验证之后,便可以对用户名以及用户密码进行破解,进而获取用户的私人信息及数据,实现入侵目的。黑客以管理员的身份通过构造SQL语句,使网站管理系统对语句进行回应,进而逐步得到用户名以及用户密码,常用的语句形式如and 1=(select管理id from(select * from管理员表名where管理员id=1)where asc(mid(管理员账号字段名,1,1))<100)。在获取用户名及用户密码之后,便可以得到Web后台管理入口,进入到系统内部。

2.5 实施攻击和破坏

黑客进入到网站系统内部之后,便可以进行随意破坏,删除、篡改用户数据,添加广告链接,上传木马病毒等,都是黑客常用破坏形式,同时还能进一步入侵整个服务器,对服务器造成严重破坏,最终完成Web页面SQL注入攻击。

3.Web页面中SQL注入攻击的预防对策

SQL注入攻击的概率较高,为了有效避免出现SQL注入攻击事件,就需要采取科学、有效的预防对策。

3.1 加强对输入参数及数据的判断

有效过滤输入参数以及正确判断输入数据,是避免出现SQL注入攻击的有效方式。首先,要对字符型参数进行有效过滤,包括逗号、单引号、双引号、分号等,当出现较多这类符号的时候,应该进行筛选、过滤,限制这类符号的输入,同时,还需要根据参数的长度,对其合法性进行正确判断。其次,是要对数据进行正确判断,当数据中含有非法字符时,便不对这类数据进行响应。

3.2 设置数据库及用户表访问权限

通过设置服务器数据库访问权限,能够防止攻击者进入到数据库内部,对数据库起到保护作用,可以有效降低SQL注入攻击发生概率。在设置服务器数据库访问权限的时候,如果没有特殊要求,不要让Web页面以超级管理员的身份与数据库进行连接。在设置用户表访问权限时,仅仅授予管理员访问权限,坚决不要授予管理员更新、插入等权限。

3.3 摒弃动态SQL字串

因为在对数据进行动态查询时,发生SQL注入攻击的概率是比较高的,所以为了降低SQL注入攻击发生概率,则需要摒弃动态SQL字串,利用用户存储过程来实现对数据的访问和操作。在这种系统模式下,用户所提交的数据便不会再生成动态SQL语句,而是确确实实地作为参数传递给存储过程,这样一来,便会失去SQL注入攻击路径。

3.4 加强系统监督及检测

加强系统日常监督与检测,是预防SQL注入攻击必不可少的重要措施。作为网站管理员要及时的打补丁并强化数据,禁用不必要的服务和功能,对数据库活动进行监视,利用工具或设备,对Web页面中的攻击行为进行检测,及早预防。

4.结束语

在大数据以及云计算背景下,网络计算机技术迎来了新的发展机遇,但同时也面临着更加严峻的挑战。作为黑客最为常用的一种入侵手段,SQL注入攻击对网络安全以及网络环境的稳定性造成了严重威胁。为了构建安全、稳定的网络环境,就需要程序员了解Web页面中SQL注入攻击的原理和过程,并制定有效的预防对策,降低SQL注入攻击发生概率。

[1]吴为团,郑海燕,张锐丽.基于Web应用程序的SQL注入攻击和防范[C].中国通信学会学术年会,2015.

[2]马俊,段兴林.Web应用系统中SQL注入的分析与预防[J].信息技术,2015(8):71-73.

猜你喜欢
黑客漏洞语句
漏洞
欢乐英雄
多少个屁能把布克崩起来?
重点:语句衔接
网络黑客比核武器更可怕
三明:“两票制”堵住加价漏洞
漏洞在哪儿
高铁急救应补齐三漏洞
如何搞定语句衔接题
作文语句实录