1.php中的等于判断有弱等于(==)和强等于(===)
弱等于判断的时候,如果两边的类型不同,则先是将类型转换成相同的,再进行比较
强等于判断的时候,先判断类型是否一样,不一样直接false,一样才比较。
php弱等于里面,默认类型转换时的将字符串转换成数字的机制是这样的:
1==“1admin” //true
1==“admin” //false
1==“admin1” //false
假如php里面我们要绕过这样的例子:
if($a==0 and $a) //我们就可以输入a为"admin"/"admin123"...都可以
2.is_number函数的绕过:
is_number函数的绕过和弱等于相似,拿一个ctf的例子来说:
if(is_numeric($b)){
exit();
}
if($b>1234){
echo $flag2;
}
不难看出我们想要获取flag,我们需要输入参数b,b既要绕开is_number()还要大于1234。这个时候我们可以这样绕过:
给b赋值 : 1235admin、10000admin、3423v....
原理和弱等于的类型转换一样