Blind SQL (盲注) : 是注入攻击的其中一种, 向数据库发送 true 或 false 这样的问题,
并根据应用程序返回的信息判断结果. 这种攻击的出现是因为应用程序配置为只显示常规错误, 但并没有解决SQL 注入存在的代码问题.
1、发现盲注
正常输入和错误输入的结果是不一样的,但不会显示报错
2、基于时间的盲注
id=1' and if(ascii(substr(database(),1,1))=115,sleep(3),0) --+
if(expr1,expr2,expr3)若表达式1计算结果为true,则执行表达式2,否则执行表达式3
substr取数据库名的第一个字符且偏移一位(包括本身),即若第一个字符的ascii为115,则执行sleep(3)
3、基于Boolean的盲注
常用的表达式
length(database())=n
ascii(substr(database(),1,1)) >/</= n
sqlmap --technique
B: Boolean-based blind SQL injection(布尔型注入)
E: Error-based SQL injection(报错型注入)
U: UNION query SQL injection(可联合查询注入)
S: Stacked queries SQL injection(可多语句查询注入)
T: Time-based blind SQL injection(基于时间延迟注入)