查看源码,用户名和密码通过post提交
加单引号提交
出现报错,推测对应的SQL语句
select ... from ... where xxx=‘‘‘ and yyy=‘123‘ limit 0,1
直接使用or构造永真登录
成功,注意此处登录的用户为表中的第一个用户
需要改变用户可以通过改变筛选条件实现
作为表中的第二个用户登录
如果在客户端进行了敏感字符的输入限定,可以直接使用hackbar提交POST数据绕过
如果采用构造这种输入,登录会失败,原因是因为and的优先级是高于or的
yyy=‘test‘返回false然后and运算仍为false, xxx=‘1‘ or false结果为false
也就是说这条查询不会返回任何结果
select ... from ... where xxx=‘1‘ or ‘1‘=‘1‘ and yyy=‘test‘ limit 0,1
注意,如果yyy=‘test‘返回为true,此查询是可以得到结果成功登录的
比如表中一个用户密码为admin
这样是可以作为该用户成功登录的
利用这种思路构造如下注入
可以成功绕过
select ... from ... where xxx=‘1‘ or ‘1‘=‘1‘ or ‘1‘=‘1‘ and yyy=‘test‘ limit 0,1