$num=$_GET[1];
if(is_numeric($num) and $num!=='818' and trim($num)!=='818'){
if($num=='818'){
echo $flag;
}else{
echo "hacker!!";
}
绕过方法:
$num=%0c818
原理:
1.is_numeric()函数在前面前面加上换行、空格、制表符也会返回true
2.$num!=='818'
用的是强比较,不会进行数据类型的转化
所以%0c818!==818
3.trim($num)
可以看出,他不会去除%0c(换页符)
所以可以绕过
4.$num=='818'
弱类型比较