[SUCTF 2019]EasySQL --不会编程的崽

本文讲述了在解决一道SQL题目时遇到的堆叠注入挑战,作者尝试了Fuzz测试和关键字过滤的规避方法,探讨了如何利用`setsql_mode`改变运算符来执行非预期的SQL查询。
摘要由CSDN通过智能技术生成

即使题目再简单,大佬的思维我还是跟不上哎。。。继续更新sql的第二天

 看这个样子就知道是什么了----堆叠注入

老样子,先fuzz一下过滤了哪些关键字。基本如下 from flag handler prepare information_schema  performance_schema等。先随便测试一下 吧。

不管数字是多少,只有这一个回显。也没有引号需要闭合

1;show databases;

1;show tables;

 

 flag被过滤了。handler,预编译都被过滤了。。。各种关键字绕过也不行。。。去看了看别人的wp。

他的后端既然能做到数字回显字母不回显,说明有一个 或 结构,而且不直接回显flag,但作为一道题目,from一定是from flag。
所以猜测后端:

select $_POST['query'] || flag from flag
payload: *,1

 我是没看懂这个payload(select *,1||flag from Flag)

 问了下GPT的解释:这个SQL查询语句的含义是从名为Flag的表中选择所有列,并在结果集中添加一个名为flag的新列。新列的值是1与Flag表中的flag列的值进行逻辑OR操作的结果。在SQL中,逻辑OR操作符用两个竖线符号"||"表示。

上述是非预期解题

第二种:set sql_mode=pipes_as_concat

意思就是将pipes设置成了字符串连接符号

payload:1;set sql_mode=PIPES_AS_CONCAT;select 1

挺抽象,或许也是我菜吧 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值