首页 理论教育计算机网络与信息安全:注入式攻击的危害及发现

计算机网络与信息安全:注入式攻击的危害及发现

【摘要】:注入式攻击是一种比较常见、危害严重的网络攻击,其主要针对Web服务器端的特定数据库系统。由于注入式攻击利用的是SQL语法,因此这种攻击具有广泛的应用基础。但是,注入式攻击会导致网站出现一些可疑现象,如Web页面混乱、数据内容丢失、访问速度下降等,这些现象都有助于发现注入式攻击。

注入式攻击是一种比较常见、危害严重的网络攻击,其主要针对Web服务器端的特定数据库系统。注入式攻击的基本特征主要表现在从一个数据库获得未授权的访问与直接检索。注入式攻击的手段是在Web访问请求中插入SQL语句,针对的是Web服务器程序开发过程中的漏洞,如是否做输入数据的合法性检查等。

由于注入式攻击利用的是SQL语法,因此这种攻击具有广泛的应用基础。从理论上来讲,对于所有的基于SOL的数据库软件,如Access、SQL Server、Oracle、DB2、MySQL等,注入式攻击都是有效的攻击方法。当然,根据各种不同的数据库软件,最终的攻击代码也会有一定的区别。

注入式攻击的基本流程如下:

(1)判断是否存在漏洞。在浏览器地址栏中,输入“http://www.*.*/*.asp?nid=12 and 1=1”,返回正常结果;而输入“http://www.*.*/*.asp?nid=12 and 1=2”,提示BOF或EOF等信息,则说明该网站存在注入漏洞。

(2)判断数据库软件的类型。在浏览器地址栏中输入“http://www.*.*/*.asp?nid=12 and user>0”,提示JET,说明数据库软件是Access;提示OLEDB,说明数据库软件是SQL Server。

(3)猜测数据库中的表以及表中的字段与字段中的值。在浏览器地址栏中,输入“http://www.*.*/*.asp?nid=12 and(select count(*)from admin>0)”,返回正常结果,说明数据库中存在Admin表;输入“http://www.*.*/*.asp?nid=12 and(select count(admin)from admin>0)”,返回正常结果,说明admin表中存在admin字段;输入“http://www.*.*/*.asp?nid=12 and exists(select id from admin where id=1)”,返回正常结果,说明admin字段中存在id为1的值。(www.chuimin.cn)

(4)猜测用户名长度。在浏览器地址栏中,输入“http://www.*.*/*.asp?nid=12 and(select top 1 len(username)from admin>n)”,返回错误结果,说明用户名的长度为n=1;输入“http://www.*.*/*.asp?nid=12 and exists(select id from admin where id=1 andasc(mid(admin.n,1))=97)”,返回正常结果,由于97为字符a的ASCII码值,说明用户名的第z位为a。

(5)猜测用户密码及其长度。测试方法类似步骤(4)。

(6)登录网站后台系统,进一步执行攻击行为。

由于多数网站都使用SQL Server等数据库软件,并且很多程序员在编写程序的时候没有做输入数据的合法性检查,因此注入式攻击成为针对网站系统的常见攻击手段。由于注入式攻击是在Web的输入地址中提交SQL语句,其访问行为与正常Web页面访问没有区别,因此多数防火墙系统无法有效检测注入式攻击。但是,注入式攻击会导致网站出现一些可疑现象,如Web页面混乱、数据内容丢失、访问速度下降等,这些现象都有助于发现注入式攻击。

针对注入式攻击的防范措施主要包括在编写代码时做好数据的合法性检查,增强数据库软件的安全设置,启用Web服务器的审计日志等,从而有效防范注入式攻击行为。