矛盾
矛盾,flag提交格式为:flag{}
考点:代码审计、构造payload
<?php
$num=$_GET['num'];
if(!is_numeric($num))
{
echo $num;
if($num==1)
echo 'flag{**********}';
}
?>
GET请求向服务器提交的参数num的值不能是单纯由数字组成的字符串,且参数num值必须等于1,才能得到flag,前后自相矛盾,但是php是门弱类型语言,字符串与数字在进行比较时,会截取字符串的前面数字部分与整型数字进行比较。
例如我们输入参数num值为1x.123,会截取x前面的1作为整型与整型1比较,所以输入1x.123即可得到flag。