<?php
include("flag.php");
highlight_file(__FILE__);
if(isset($_GET['num'])){
$num = $_GET['num'];
if($num==="4476"){
die("no no no!");
}
if(preg_match("/[a-z]/i", $num)){
die("no no no!");
}
if(!strpos($num, "0")){ //匹配第一个字符
die("no no no!");
}
if(intval($num,0)===4476){
echo $flag;
}
}
分析:过滤了0-9,意味着不能再用进制过滤了,但是发现第一个判断句if中的“4476”是个字符,所以用小数型来绕过
输入:
http://94cc0268-f31e-41bf-a665-5d04a5ac90b0.challenge.ctf.show/?num=4476.0