SQL注入:7.SQL盲注原理讲解

介绍

为啥叫盲注?因为不会返回数据库内建的报错信息。而这些报错信息是我们普通SQL注入漏洞判断的依据。
我们无法依据服务器的返回值来判断,我们可以依据两次执行的差距来判断。
可以依据基于逻辑的真假来判断

判断是否有漏洞

1‘ and 1=1–+ 注意:不要忘了–后有空格,否则语法错误 and左右都为真
SQL注入:7.SQL盲注原理讲解
目标返回了结果。说明执行了。

1‘ and 1=2–+ 注意:不要忘了–后有空格,否则语法错误 右边是假
而且执行后看不到返回。

对比两次一次有返回依次无返回,说明一定有一次被执行了,代码被执行了就说明有漏洞。

二分法确定默认查询的表有几个列

SQL注入:7.SQL盲注原理讲解
注意:order by 正常后面接列名,这里写2表示第二列。一第二列排序。如果没有第二列,肯定报错。
当上面数字为3发现没有返回,说明只有两列。

selece * from table_name where id=‘2’ order by 1,2-- ’ 注意:不要忘了–后有空格,否则语法错误 执行如下
SQL注入:7.SQL盲注原理讲解
为啥有两对输出?
第一对输出是selece * from table_name where id=‘2’ 这个结果,查询第2行
第二队输出是order by 1,2-- 直接将1和2显示在firstname和surname位置

后续

当确认有漏洞后,剩下的就和前面一样的思路。