'or''=''or'漏洞是根据or and 运算符的逻辑运算,绕过后台验证进入后台的漏洞。 我两年前就玩过这样的漏洞,今天突然想写点什么,就有了这篇文章。 如果一个网站后台登陆的时候用户名和密码放在一个where中判断就悲剧了,例如下面的SQL语句: sql=”select * from admin where name='”&name&”' and password='”&pass&”'” SQL语句中的where是查询的条件,如果是“真”的话就成功进入了后台。 当我们用户名输入'or''=''or' 密码输入任意例如12***56 name变量的值是'or''=''or' password变量的值是12***56 最后构造成的SQL语句如下: select * from admin where name=''or''=''or'' and password='12***56' name=''部分结果是假,因为不会存在空的账号 ''=''部分结果是真,因为 ''等于''! ''部分结果为假 password='12***56'部分结果为假,因为密码是自己瞎编的
由于and运算符优先级高于or的优先级,所以先运算and部分,and部分结果是“假” 其中''=''部分是真,由于是or连接的,所以结果是“真”
|