考试网 >> IT认证 >> 水平 >> 系统工程师 >> SQLServer讲堂:加密与SQL注入

SQLServer讲堂:加密与SQL注入

发布时间:2006-06-28 02:57     点击:
分页:上一页  1 2 [3] 4  下一页

Response.Write(rstResults.Fields("ContactName").Value)

 

  现在你知道什么地方有问题了吧?如果用户知道一个用户的ID,他可以通过检索来获得全部的相应的名字。现在明白了?

  获得额外的数据



  当然,对于一个攻击程序,尽管它不知道任何顾客的ID,甚至不用去猜,它也可以获得数据。为了完成这个工作,它将下面的文本输入到应用程序调用顾客ID的textbox中:

customer ID:

'UNION ALL SELECT ContactName FROM Customers

 WHERE CustomerID <>' 

 

  如果你输入了这个代码,你将会看到返回一个询问语句:

SELECT ContactName FROM Customers

 WHERE CustomerID = ''

UNION ALL SELECT ContactName FROM Customers

 WHERE CustomerID <>'' 

  通过获得空和非空顾客的ID并集,这个查询语句会返回数据库中所有的相关姓名。事实上,这个UNION技术可以被用来获得你数据库中大多数信息,看看这个CustomerID的值:

'UNION ALL SELECT FirstName + ' ' + LastName FROM

 Employees WHERE LastName <>'



  它将SQL语句变成:

SELECT ContactName FROM Customers

 WHERE CustomerID = ''

UNION ALL SELECT FirstName + ' ' + LastName FROM

 Employees WHERE LastName <>''

 

  看,那就是攻击程序从你的数据库获得的第一个雇员的名字。

  更多的攻击程序



  如果SQL注入仅仅只有数据暴光这个弱点就已经够糟糕的了,但是,实际上一个良好的攻击程序可以通过这个弱点获取你数据库中所有的资料。看下面这个例子:

';DROP TABLE Customers;--

  SQL语句变成:

SELECT ContactName FROM Customers

      WHERE CustomerID = ''

分页:上一页  1 2 [3] 4  下一页
版权申明:未经书面授权请勿转载本站信息!!作品版权归所属媒体与作者所有!!
发表评论: 匿名发表 用户名: 查看评论
您将承担一切因您的行为、言论而直接或间接导致的民事或刑事法律责任
留言板管理人员有权保留或删除其管辖留言中的任意内容
本站提醒:不要进行人身攻击。谢谢配合。
在本站搜索相关信息
2003-2005 Ksw123.com All Rights Reserved. - TOP
Copyright © 2006 Ksw123.com. All rights reserved.中国考题网 版权所有