SQL Injection:网络攻击及其防范措施(3)

图4 job表查询结果 当我们输入了以上URL后,结果服务器返回我们错误信息,这证明了我们的假设是错误的,那我们该感觉到挫败吗?不,其实这里返回了很多信息,首先它证明了该表名不是job,而且它还告诉我们后台数据库

图4 job表查询结果

 

图4 job表查询结果

当我们输入了以上URL后,结果服务器返回我们错误信息,这证明了我们的假设是错误的,那我们该感觉到挫败吗?不,其实这里返回了很多信息,首先它证明了该表名不是job,而且它还告诉我们后台数据库是SQL Server,不是MySQL或Oracle,这也设计一个漏洞把错误信息直接返回给了用户。

接下假定表名是jobs,然后输入以下URL:

http://localhost:3452/ExcelUsingXSLT/Default.aspx?jobid=1"or1=(select count(*) from jobs)

等效SQL语句如下:

 

SELECT job_id, job_desc, min_lvl, max_lvl

FROM jobs

WHERE job_id="1"or 1=(select count(*) from jobs) "

图5 job表查询结果
图5 job表查询结果

现在证明了该表名是jobs,这可以迈向成功的一大步,由于我们知道了表名就可以对该表进行增删改操作了,而且我们还可以猜测出更多的表对它们作出修改,一旦修改成功那么这将是一场灾难。

现在大家已经对SQL Injection的攻击有了初步的了解了,接下让我们学习如何防止SQL Injection。

总的来说有以下几点:

1.永远不要信任用户的输入,要对用户的输入进行校验,可以通过正则表达式,或限制长度,对单引号和双"-"进行转换等。

2.永远不要使用动态拼装SQL,可以使用参数化的SQL或者直接使用存储过程进行数据查询存取。

(责任编辑:闫小琪)

顶一下
(1)
100%
踩一下
(0)
0%
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
热点内容
图片资讯

桌面安全 需采用“深层防御”方法

桌面安全 需采用“深层防御”方法

深层防御方法代表了一套全方位安全哲学,帮助保护计算环境免受许多攻击手法的攻击。 ...[详细]

网络安全巧设置 Win2008 R2 防火墙详解

网络安全巧设置 Win2008 R2 防火墙详解

针对一般中小企业型来说,如果希望对企业网络进行安全管理,不一定非得花高价钱购买专...[详细]

Windows Vista中如何加密文件或文件夹

Windows Vista中如何加密文件或文件夹

要在Windows Vista加密文件或文件夹,可按下面的操作步骤进行:。 ...[详细]

信用卡背后的安全隐患

信用卡背后的安全隐患

Visa组织在2001年推出一个他们称为3DS的安全协议,也就是3 Domain Secure的缩写。试图...[详细]

周鸿祎:AVC证明360杀毒具有世界级技术

周鸿祎:AVC证明360杀毒具有世界级技术

曾令中国杀毒业难堪的AV-Comparatives国际权威评测传来喜讯:在最新公布的AVC回溯测试...[详细]