第25a关使用GET请求传递参数,在url地址栏中构造payload即可
后端源码中过滤了and和or,但只过滤了一次,我们可以通过双写绕过
在url地址栏中输入 1 anandd true -- a,登录成功;输入 1 anandd false -- a,登录失败,用户可以通过参数使SQL恒成立或恒不成立,从而改变SQL的执行结果,由此推断存在SQL注入,注入点为整数型注入
源码中的SQL是这样的
我们输入 1 anandd true -- a 时,过滤掉and并拼接到SQL中是下面这样的
注释后面的内容不起作用,所以真正执行的SQL是下面这样的
SQL恒成立,可以正常查询处数据,固登录成功
当我们输入 1 anandd false -- a时,过滤掉and后拼接到SQL中是下面这样的
去掉注释后面的内容后,真正执行的SQL是这样的
SQL恒不成立,查询不到数据,所以会返回空数据
接下来就可以用布尔盲注进行脱库了
1 anandd length(database())>1 -- a