SQL注入绕过技巧

常用的绕过技巧

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;

 

(未完待续)

原文地址:https://www.cnblogs.com/alummox/p/9551480.html