基于WWW的SQL注入攻击研究

时间:2022-04-08 10:30:19

基于WWW的SQL注入攻击研究

【摘要】随着WWW技术的发展,基于的Web应用越来越多。而针对Web应用的攻击成为了当前网络安全攻防的热点之一。这些攻击中,SQL注入攻击是最常见的一种。攻击者通过SQL注入不仅可以对服务器数据进行篡改、加载信息,还可以上传木马等。通过SQL注入攻击,攻击者可以非法获得对Web应用系统数据库的无限制访问,进一步得到企业和用户的信息,给企业和用户带来了严重经济损失和危害。因此,针对SQL注入攻击的技术研究具有重要的现实意义。

【关键词】SQL注入攻击研究

从上个世纪八十年代开始,Internet技术给人们生活带来了极大的改变。作为网络应用重要组成部分的Web网站,以其快速、灵活、实用的特性,得到了广泛普及。相当多的开发人员在编写Web应用程序时,没有全面考虑安全问题,未对用户的输入行为和输入数据的合法性进行判断,使Web应用程序存在着各种不确定的安全隐患。其中,最为流行和最广泛应的技术就是SQL注入攻击,常见的攻击方式有二种:脚本注入式的攻击和恶意用户输入,用来影响被执行的SQL脚本。

SQL注入出现至今已有10多年,国外学者一直都在对注入攻击进行研究,对其理论和技术研究都比较深入,提出了一些防御SQL注入攻击的方案。

(1)动态预处理语句

(2)代码防范

(3)在Web服务器端进行设置,屏蔽错误信息。

(4)设置数据库服务器用户,赋予最低权限,禁止一些危险的脚本、数据库命令等的执行。

目前,国内针对SQL注入攻击的攻击工具正处于发展之中。鉴于此种情况,论文的目标是针对当前的已有的SQL注入攻击技术,认真研究SQL注入的原理与特征。

SQL语言是一种结构化查询语言,其功能并不单单是查询。它是一个通用的、功能极强的关系数据库语言。它有四种功能,即数据查询(Data Query)、数据操纵(Data Manipulation)、数据定义(Data Definition)和数据控制(Data Control)。

SQL是访问Microsoft SQL Server、Oracle、MySQL等数据库服务器的标准语言。大多数Web应用都需要与数据库进行交互,并且大多数Web应用编程语言(如ASP、C#、.NET、Java和PHP)均提供了可编程的方法来与数据库相连并进行交互。如果攻击者能够控制发送给SQL查询的输入,并且能够操纵该输入将其解析为代码而非数据,那么攻击者就很可能有能力在后台数据库执行该代码。接下来重点介绍SQL注入攻击和盲注攻击

1.SQL注入攻击技术分为以下几种:

(1)内联注入是指向查询注入一些SQL代码后,原来的查询仍然会全部执行,图1展示了内联SQL注入的示意图.

图1 内联注入的SQL代码

(2)终止式SQL语句注入是指攻击者在注入SQL代码时,通过注释剩下的查询来成功结束该语句。图2 展示了终止式SQL注入的示意图。

图2 终止式SQL注入

(3)时间延迟

测试应用是否存在SQL注入漏洞时,经常发现某一潜在的漏洞难以确认。这可能源于多种原因,但主要是因为Web应用未显示任何错误,因而无法检索任何数据。

(4)使用UNION语句提取数据

在SQL注入攻击中,UNION运算符的潜在价值非常明显:如果应用返回第一个(原始)查询得到的数据,那么通过在第一个查询后面注入一个UNION运算符,并添加另外一个任意查询,便可以读取到数据库用户访问过的任何一张表

(5)使用条件语句注入

使用UINON注入任意查询是一种快速有效的提取数据的方法。但该方法不适用于所有情况,Web应用(即便它们易受到攻击)并不愿意轻易泄露数据。

2.SQL盲注攻击技术分为以下几种

(1) 推断技术

从本质上看,所有推断技术均可通过观察指定请求的响应来提取至少一位信息。观察是关键,因为当请求的位为1时,响应会有专门的标志;而当请求的位为0时,则会产生不同的响应。响应中的真正差异取决于所选用的推断工具,所使用的方法则大多基于响应时间、页面内容、页面错误或者以上这些的组合。

(2)基于时间的推断技术

SQL Server提供了一种明确的暂停任何查询执行的能力。使用WAITFOR关键字可促使SQL Server将查询中止一段时间后再执行。

(3)基于响应的推断技术

正如刚才使用请求时间推断特定字节的信息一样,我们还可以通过仔细检查响应中的数据(包括内容和头)来推断状态。推断状态时,可以借助响应中包含的文本或在检查特定值时强制产生的错误。例如,可以在推断中包含修改查询的逻辑:当检查的位为1时,查询返回结果;为0时则不返回结果;或者当位为1时,强制产生一个错误,而为0时不产生错误。

本论文主要叙述了SQL注入攻击的相关技术,包括SQL语言、SQL注入产生原因、SQL注入攻击技术和SQL盲注攻击技术。通过学习让我们对SQL注入攻击的相关技术有了相当一部分的了解。

上一篇:一年级语文教学中开展合作学习的点滴经验 下一篇:新闻拼盘 第12期