第29关使用GET请求提交参数,在url中构造payload即可
源码中并没有做什么过滤,直接测试注入点即可
在url中输入 1'and true-- a,源码中的SQL会拼接成下面这样
注释后面的内容不起作用,所以真正执行的SQL是这样的
and后面的true会使SQL恒成立,SQL正常查询出用户内容,并在页面显示出来
接下来再输入 1'and false-- a,参数拼接到SQL中是下面这样的
由于注释后面的内容不起作用 ,所以真正执行的SQL应该是这样的
and后面的false使SQL恒不成立,SQL查不出用户信息,从而导致页面空显示
用户的参数能够使SQL恒成立或恒不成立,从而控制SQL执行的结果,由此可知存在SQL注入,注入类型为单引号字符型注入,页面有显示位,我们可以使用联合注入进行脱库
-1' union select 1,2,
(select group_concat(schema_name)from information_schema.schemata)
-- a
- 因为用户id不为负数,这里id写成-1会导致查询不到用户信息,从而展示后面联合查询的结果
- group_concat()用来将多行结果合并成一行,并使用逗号分隔