题目:
$num=$_GET['num'];
if(!is_numeric($num))
{
echo $num;
if($num==1)
echo 'flag{**********}';
}
题目需要使用get方法获取num,函数is_numeric判断参数是否为数字,这就奇怪了,又要num不是数字,又要num=1,这就涉及到php的判断方式。
php是弱类型语言,如下例
<?php
$str = "0dff";
if (0 == $str) {
echo "true";
}else{
echo "false";
}
?>
程序会输出true,因为在执行关系运算”==“时要求运算符两边的数据类型必须一致,所以等号右边的字符串被强制转换为了整型0。
回到本题,只需要提交num=1a即可得到flag