sqli-labs less 5-6

sqli-labs less 5-6

从源代码中可以看到,运行返回结果正确的时候只返回you are in....,不会返回数据库当中的信息了,以前的union联合查询就不能用了,开始尝试盲注。
enter description here

简单介绍下 left函数的使用

Left()得到字符串左部指定个数的字符
Left ( string, n ) string为要截取的字符串,n为长度。

目前Mysql版本号为5.5.53
enter description here

利用left(version(),1) 和二分查找 进行尝试判断
enter description here

大于6时 不能正确显示 you are in...... 基本确定 第一位为5
enter description here

正常返回 说明version() 第一位为5
enter description here

根据上述方法以此类推进行判断,推荐使用单引号包含内容
enter description here

利用Length可以判断数据库的长度
enter description here

下面开始猜解数据库名 database() 为 security 利用二分查找
enter description here

到这部基本确定s为数据库名的第一位
enter description here

猜测数据库第二位 看前两位是否大于 sa
enter description here

往下的请举一反三即可!

根据以上得知数据库名为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位,包括本身。
enter description here

Tips:上述利用mid函数也可以替换成substr函数或substring函数!

下面利用ascii码来进行判断,以此类推就能得出表名users
enter description here

ascii对照表:http://tool.oschina.net/commons?type=4

获取users表的内容
enter description here

Tips:还有很多方法没有写进来,实在太多了。观察大神的payload学习学习,再尝试自己构建注入payload,这样理解起来就比较好!这less 5-6也可以利用报错注入和延时注入,这里就先不说了,还没仔细看。less 6 把 less 5的单引号换成双引号即可...... 不过吧,现实中盲注基本利用sqlmap或者自己写的脚本来跑,手工盲注实在是太慢了!!!

猜你喜欢

转载自www.cnblogs.com/cany/p/10748037.html