布尔盲注是一种基于布尔逻辑的SQL注入攻击技术,主要用于在无法直接获取数据库报错信息的情况下,通过观察应用程序对不同SQL语句执行结果的响应差异来推断数据库中的信息。
基础知识:
length() //获取字符串的长度
select LENGTH(database());
//可以拿到当前数据库的库名的长度
select LENGTH(database())>5;
//可以依据length函数来对当前数据库的库名长度进行猜测,如果条件为真,则返回1,如果条件为假,则返回0
判断库名所包含的字符
substr() 通过此函数来进行字符串的截取
substr (string string,num start,num length); string为字符串;start为起始位置;length为长度。注意:mysql中的start是从1开始的。
select substr(database(),1,1)='s' //来判断库名的字符,如果为真返回1,为假返回0
通过ASCII码去判断字符
ascii(); 通过此函数来获取字符的ASCII码
select ascii(substr(database(),1,1))=115 //通过ascii码判断库名的字符,为真返回1,为假返回0
通过转换为ascii码,可以提高布尔盲注猜测库名的速度,采用二分法较为快速地判断出库名地每个字符
ascii表如下
注:此方法仅限于ascii字符集,若库名中含有ascii字符集以外的字符如中文,则无法使用此方法
为了提高效率,可以选择采用burpsuite进行自动爆破
在match中输入无结果的返回信息,可以快速筛选出需要的正确注入结果