用于获取变量的整数值
用法:int intval ( mixed $var [, int $base = 10 ] )
如果base=0,通过检测 var 的格式来决定使用的进制:
- 如果字符串包括了 “0x” (或 “0X”) 的前缀,使用 16 进制 (hex);否则,
- 如果字符串以 “0” 开始,使用 8 进制(octal);否则,
- 将使用 10 进制 (decimal)。
如echo intval(042) //34,即八进制数值042转换为十进制整数
例:$num = $_GET['num'];
if($num==="4476"){
die("no no no!");
}
if(intval($num,0)===4476){
echo $flag;
}
//十进制4476对应的8进制数值为10574,对应的16进制数值为117c
则可行的payload为
?num=4476.1
?num=+4476
?num=0x117c
?num=010574
?num= 010574 //空格+8进制
?num=4476e0 //科学计数法