原理
在sql注入过程中,sql语句的执行结果不回显到前端,这个时候就只能用一些别的方法进行判断或者尝试,这个判断或尝试过程就叫盲注。
布尔盲注
构造逻辑判断语句,判断信息真假,取出所有的真值,实现sql注入
布尔盲注常用函数
1.left()函数
用法:left(database(),1)>'a'
database()显示数据库名称,left(a,b)从左侧截取a的前b位
2.regexp
用法:select user() regexp '^r'
判断user()执行结果是否以r开头
3.like
用法:select user() like 'ro%'
like通常与通配符%一起使用,而不加通配符%的like语法,表示精确匹配,其实际效果等同于 = 等于运算符
4.substr() , ascii() 函数
用法:ascii(substr((select database()),1,1))=98
substr(a,b,c)从b位置开始,截取字符串a的c长度。ascii()将某个字符串转化为ascii值
时间盲注
代码存在sql注入漏洞,然而页面既不会回显数据,也不会回显错误信息,语句执行后也不提示真假,我们不能通过页面的内容来进行判断。于是我们可以通过构造语句,通过页面响应的时长,来判断信息。