SQL Injection (Blind)
SQL盲注与一般注入的区别在于一般的注入攻击者可以直接从页面上看到注入语句的执行结果,而盲注时攻击者通常是无法从显示页面上获取执行的结果,甚至连注入语句是否执行都无法得知。盲注的话,只能得到“是”与“不是”,因此,得从一个大的范围去问是与不是,然后慢慢的缩小范围,最后就是类似于问“数据库名字的第一个字是不是a啊”这样的问题,通过这种机械的询问,最终得到我们想要的数据。
盲注分为:
基于布尔的盲注、
基于时间的盲注、
基于报错的盲注
盲注的一般步骤:
1.判断是否存在注入、
2.注入是字符型还是数字型
输入1’ and 1=1#显示存在,输入1’ and 1=2#显示不存在,说明存在字符型的SQL盲注
3.猜解当前数据库名
判断database的长度
输入1' and length(database())=1 # 显示不存在
输入1' and length(database())=3 #,显示不存在
输入1' and length(database())=4 #ÿ