[CTF]php is_numeric绕过

时间:2025-04-11 10:59:18

PHP is_numeric() 函数
is_numeric() 函数用于检测变量是否为数字或数字字符串。
PHP 版本要求:PHP 4, PHP 5, PHP 7

bool is_numeric ( mixed $var )

如果指定的变量是数字和数字字符串则返回 TRUE,否则返回 FALSE,注意浮点型返回空值,即 FALSE。

is_numeric函数对于空字符%00,无论是%00放在前后都可以判断为非数值,而%20空格字符只能放在数值后。

构造:

?what=1'
?what=1,
?what=1%00

都可以绕过!is_numeric($num)的判断

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