布尔盲注
通过order by分组可以看到,如果正确会i显示you are in,错误则无任何提示,由此可以判断出,目前只显示对错,此外前端不会显示任何数据
也就是说,目前结果只有两种,在这种只有两种变量的情况下,只有布尔类型是两种类型,也就是这块我们就要使用布尔盲注去猜了
?id=1' and ascii(substr(database()),1,1)>100--+
这行代码的意思是 截取数据库中第一个字段的长度,并转换为asc码与100比较,我们知道我们数据库名 security ,第一个是s,通过asc码转换值应为115,所以符合,大家可以更改比较数值,去尝试查看超过115,会不会错误不显示
但是数据库名,表名,列名每个至少有6,7个字母,挨个猜效率肯定很低,所以python启动!!!我们来自己来写脚本
运行结果就是我们之前的 security,从而得到我们想要的结果
时间盲注
时间盲注和布尔盲注没有太大区别,也是利用ascii去猜测
?id=1’ and if(ascii(substr(database(),1,1))>100,sleep(3),0)--+
if(aaa,bbb,ccc),在mysql中 if中三个参数,意思是如果第一个为真则执行第二个,为假执行第三个,个人认为:aaa为真则执行bbb,否则执行ccc,所以aaa的位置应该都是判断型指令
可以看到网页运行了3.03秒,这就说明符合从database中截取的第一个字符的ascii大于100,这个条件,然后可以像布尔盲注一样,编写脚本进行取值。