1.这题是GET请求,输入?id=1,登录成功,并且界面说过滤所有 ‘or’ 和 ‘and’,最下面显示出我们提交过滤后的参数。
2.当输入 ?id=1' 时报错了,说明可能存在sql注入,闭合符是单引号
3.当我输入 ?id=1' or 1=1# 时,没有登录成功,查看下面的提示原来是过滤了 or,连 # 注释符也被禁用了。
但是 -- 注释符可以用
4.使用不了 order by,因为 or 被过滤了。
5.那么我们就不能用含有 or 或者 and 的查询语句,但是我们可以用 union联合查询,由于order by 用不了,不知道查询的列数,只能一个一个试。
0' union select 1--+ //报错
0' union select 1,2--+ //报错
0' union select 1,2,3--+ //登陆成功,2,3有回显
0' union select 1,2,3,4--+ //报错
6.查库
后来要查表得时候才想到要用到information_schema这个库,但是information 里面有 or 会被过滤,那这是避免不了就只能绕过了,
大小写绕过失败
双写绕过成功
information_schema 也可以进行双写绕过查询
或者可以使用报错注入