[SUCTF 2019]easy_sql

本文详细解析了SUCTF2019中easy_sql挑战的解决思路,介绍了如何利用堆叠注入和特殊SQL模式绕过过滤,并成功获取flag。

[SUCTF 2019]easy_sql

过滤了很多字符没有去都试出来,尝试了一下存在堆叠注入想用show尝试,没有成功,确实吗解出来,去看了下大佬的wp查询语句为

select $_POST || flag from flag

并且对post传过来的值进行了过滤。如果输入的内容在预设的arr当中就会返回Nonono.

其中的|| 就代表了or,所以当输入1的时候查询就会变成select 1 || flag from flag这时查的就是select 1 from flag所以不管输入什么都是查输入的。因为存在堆叠注入,就可以用sql_mode来定义sql语法。

sql_mode=PIPES_AS_CONCAT使||符号的作用变为字符串的拼接。

构建payload:1;set sql_mode=PIPES_AS_CONCAT;select 1

和查询语句拼接起来就是 select 1;set sql_mode=PIPES_AS_CONCAT;select 1||flag from Flag

需要注意的是 sql_mode=PIPES_AS_CONCAT模式下进行查询的时候,使用字母连接会报错,使用数字连接才会查询出数据,因为这个 || 相当于是将 select 1select flag from flag 的结果拼接在一起

还有一个非预期解:*,1

拼接起来看,不难理解 : select *,1||flag from Flag这边应该是忘了把*号过滤。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值