打印本文 打印本文 关闭窗口 关闭窗口
SQLSERVER2000一些内置存储过程用法和说明
作者:武汉SEO闵涛  文章来源:敏韬网  点击数13619  更新时间:2007/11/14 12:27:07  文章录入:mintao  责任编辑:mintao
EOF 属性为 False

利用错误讯息

获取字段数量与名称

微软为了方便 ASP 的程序开发者可以顺利地除错,因此每当 Script 执行错误时,都会透过预设的 <系统所在磁盘>\WINNT\Help\iisHelp\common\500-100.asp 网页将发生错误的原因回传到前端,对于开发者来说,这是一个非常方便的错误呈现方式。但骇客也可以利用这个错误讯息取得原始 ASP 中的查询语法,并从中了解数据库中资料表的架构。例如在使用者名称字段输入:
'''' HAVING 1=1--
则系统会传回如 2 的错误讯息。


2:故意制造错误,从错误讯息中找寻蛛丝马迹。

2 可以知道存放使用者的资料表名称是 tblUser,且查询中有一个字段叫 UserID。因此我们再次输入:
''''GROUP BY UserID HAVING 1=1--
这回错误讯息如 3


3:利用错误讯息来了解资料表大致结构。

再次在 3 的错误讯息中可知查询的字段还有 UserName,因此继续以下列方式来查询3

''''GROUP BY UserID,UserName HAVING 1=1--

利用上述方式取到完整查询语法后,也就是输入以下的语法,但不再造成执行时期错误:

''''GROUP BY UserID,UserName,Password,Pri HAVING 1=1--

因为整个传递到 SQL Server 的语法变成:

SELECT * FROM tblUser WHERE UserName=''''''''GROUP BY UserID,UserName,Password,Pri HAVING 1=1--'''' AND Password=''''asdf''''

如此列出所有字段的

上一页  [1] [2] [3] [4] [5] [6] [7] [8] [9] [10]  ...  下一页 >> 

打印本文 打印本文 关闭窗口 关闭窗口