[SUCTF 2019]EasySQL

[SUCTF 2019]EasySQL

启动靶机,显示的是一个查询界面,如下

随便试试几个关键词,发现

from,flag,information 都被过滤了,

这时不妨试一下堆叠注入,查看库名,发现有回显,

1;show databases;#

 然后查看表名

1;show tables;#

但是根据上面知道过滤了from,flag,本菜鸡仅会用的几种注入方式都被ban了,

查看师傅们的wp,发现大体有两种解法:

 

解法一:

*,1

解法二:

因为输入1有回显,而输入其他0没有回显,猜测内置的查询语句有||,大概是这样滴

select $post['query']||flag from Flag

这样的话上面的*,1就可以理解了,就会使得后端执行select *,1||flag from Flag,也就是select *,1 from Flag

然后官方的wp是这么写的

1;set sql_mode=PIPES_AS_CONCAT;select 1

其中set sql_mode=PIPES_AS_CONCAT;的作用是将||的功能从 或运算(or) 改为  字符串拼接

我们可以从结果中看到,修改之后这个 || 相当于是将select 1 和 select flag from Flag 的结果拼接在一起

推荐几个相关的文章:

easysql这位师傅讲得比较详细,并且在本地实现了相关原理,有截图讲解。

这位师傅的博文介绍了相关函数sql_mode函数

 

 

 

  • 6
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值