<?php
include("flag.php");
highlight_file(__FILE__);
if(isset($_GET['num'])){
$num = $_GET['num'];
if($num==4476){
die("no no no!");
}
if(intval($num,0)==4476){
echo $flag;
}else{
echo intval($num,0);
}
}
分析:intval()函数如果
b
a
s
e
为
0
,则
base为0,则
base为0,则var中存在字母的话遇到字母就停止读取。但是e这个字母比较特殊,在PHP中表示十六进制。所以为了绕过前面的==4476我们就可以构造 0e 或 0(表示八进制)
输入:
http://e6a600bd-7437-497a-832d-d929b84fcb4f.challenge.ctf.show/?num=4476e123