【sqli-labs】 less11 POST - Error Based - Single quotes- String (基于错误的POST单引号字符型注入)

查看源码,用户名和密码通过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

 

posted @ 2018-01-20 00:26  omnis  阅读(353)  评论(0编辑  收藏  举报