(深入)逻辑漏洞挖掘
2018-01-27 本文已影响80人
FKTX
in_array($var,$arr)这个函数的功能是看$var是否在$arr这个数组中,若存在,则返回true,否则返回false。
但是,这个函数会做自动类型转换。因此,若代码像这么写,就会出现逻辑错误。
可以看到,提交的参数并不等于数组中的内容,可是依旧会被当做等于去执行。
is_numeric(),这个函数若是接收到16进制的值时,就可能出现漏洞
php的“==”和“===”的区别
==更容易出现安全隐患,我个人没想到这样居然会相等。
这种逻辑漏洞也是程序员容易犯错的,两个参数,第一个参数过滤了,第二个参数也过滤了,但是又用str_replace()再替换一下两个参数,就导致了重合,反斜线就被转义了。