
信息查询数据库名的查询select database();
数据库版本防火墙的绕过会涉及。
select version();
判断字符型还是数字型注释符:“#” “–+” “%23”
方法1:使用 and 1=1 和 and 1=2 来判断
比如对于lab1,我们提交?id=1 and 1=1 或者?id=1 and 1=2都能正常显示界面,则不可能是数字型注入,即为字符型注入。对于lab1,我们提交?id=1 and 1=2都不能正常显示界面,则为数字型注入。
如果是数字型注入,那我们就不需要测试闭合方式,否则还需要判断闭合方式:' " ') ")。
方法2:使用 id=2-1
数字型是可以进行运算的,那么就相当于是id=1。
注意:最好不用 + ,在URL编码中通常会使用 + 或 %20 来代替空格,解码会把 + 编码为空格。所以有时我们也可以用 + 绕过空格限制。
对列数的判断unionselect * from users where id=1 union select 1,2,3;
增加union后面的数字,当报错说明超过最大列 ...