sqli-labs less 5-6
从源代码中可以看到,运行返回结果正确的时候只返回you are in....,不会返回数据库当中的信息了,以前的union联合查询就不能用了,开始尝试盲注。
简单介绍下 left函数的使用
Left()得到字符串左部指定个数的字符
Left ( string, n ) string为要截取的字符串,n为长度。
目前Mysql版本号为5.5.53
利用left(version(),1) 和二分查找 进行尝试判断
大于6时 不能正确显示 you are in...... 基本确定 第一位为5
正常返回 说明version() 第一位为5
根据上述方法以此类推进行判断,推荐使用单引号包含内容
利用Length可以判断数据库的长度
下面开始猜解数据库名 database() 为 security 利用二分查找
到这部基本确定s为数据库名的第一位
猜测数据库第二位 看前两位是否大于 sa
往下的请举一反三即可!
根据以上得知数据库名为security,那我们利用此方式获取security数据库下的表,开始利用substr() ascii() mid()函数进行尝试。
简单介绍下mysql中limit 语法
select * from table limit m,n
其中m是指记录开始的index,从0开始,表示第一条记录,n是指从第m+1条开始,取n条。
select * from tablename limit 2,4
即取出第3条至第6条,4条记录。
根据二分查找 判断出表名,此处为最终验证结果,LIMIT 3,1),1,5)意思是从数据中拿到第4条,取1条。从第一个字符开始取5位,包括本身。
Tips:上述利用mid函数也可以替换成substr函数或substring函数!
下面利用ascii码来进行判断,以此类推就能得出表名users
ascii对照表:http://tool.oschina.net/commons?type=4
获取users表的内容
Tips:还有很多方法没有写进来,实在太多了。观察大神的payload学习学习,再尝试自己构建注入payload,这样理解起来就比较好!这less 5-6也可以利用报错注入和延时注入,这里就先不说了,还没仔细看。less 6 把 less 5的单引号换成双引号即可...... 不过吧,现实中盲注基本利用sqlmap或者自己写的脚本来跑,手工盲注实在是太慢了!!!