ctf-web-bugku-矛盾

$num=$_GET['num'];
if(!is_numeric($num))
{
echo $num;
if($num==1)
echo 'flag{**********}';
}

题目如上

看到函数is_numeric(),由于我并不熟悉这个函数,所以我进行了查询

得知他是用于判断括号中的num是否为数字或数字字符串,若是则返回true,不是则返回false

阅读本题代码可知,我们需要让num等于1,才能得到flag,但如果num等于1就不会执行最外面的if语句,就无法得到flag,因此我想到能不能绕过is_numeric()函数。

查询得知可以借助url中的空字符来绕过,比如%00 这样我们就把数字变成了非数字,且num等于1

在地址栏中输入/?num=1%00 即得到flag

posted @ 2024-09-16 21:31  onehang  阅读(6)  评论(0)    收藏  举报  来源