php is_numeric bypass
上次360的ctf出现了is_numeric这个函数的绕过。上网查了下都是绕过后执行sql的。现在比赛比完了就记录下这个函数。
php代码:
<?php $num = $_GET['num']; if(is_numeric($num)){ echo "Fuck it!"; }else{ if($num == 8){ echo "You got it!"; } echo $num; } ?>
bypass方法:
test.php?num=8 在 8 后面加任何除数字之外的字母或者符号即可绕过。比如 test.php?num=8a,甚至test.php?num=8%20,加一个空格就可以绕过。所以360播报中的writeup就可以补充下。
下图为360播报中的writeup:
实际测试中是这样的:
我还可以这样
注意一点,0.71e1 这样的话就会被判断为数字。e也是个运算符,代表0.71*10^1。
本文由Hack Blog原创,如需转载注明原文链接