sqli-labs less 5-6

从源代码中可以看到,运行返回结果正确的时候只返回you are in....,不会返回数据库当中的信息了,以前的union联合查询就不能用了,开始尝试盲注。
sqli-labs less 5-6 随笔 第1张

简单介绍下 left函数的使用

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

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

目前Mysql版本号为5.5.53
sqli-labs less 5-6 随笔 第2张

利用left(version(),1) 和二分查找 进行尝试判断
sqli-labs less 5-6 随笔 第3张

大于6时 不能正确显示 you are in...... 基本确定 第一位为5
sqli-labs less 5-6 随笔 第4张

正常返回 说明version() 第一位为5
sqli-labs less 5-6 随笔 第5张

根据上述方法以此类推进行判断,推荐使用单引号包含内容
sqli-labs less 5-6 随笔 第6张

利用Length可以判断数据库的长度
sqli-labs less 5-6 随笔 第7张

下面开始猜解数据库名 database() 为 security 利用二分查找
sqli-labs less 5-6 随笔 第8张

到这部基本确定s为数据库名的第一位
sqli-labs less 5-6 随笔 第9张

猜测数据库第二位 看前两位是否大于 sa
sqli-labs less 5-6 随笔 第10张

往下的请举一反三即可!

根据以上得知数据库名为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位,包括本身。
sqli-labs less 5-6 随笔 第11张

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

下面利用ascii码来进行判断,以此类推就能得出表名users
sqli-labs less 5-6 随笔 第12张

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

获取users表的内容
sqli-labs less 5-6 随笔 第13张

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

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄