is_numeric的理解
$num=$_GET['num'];
if(!is_numeric($num))
{
echo $num;
if($num==1)
echo 'flag{**********}';
}
空格、\t、\n、\r、\v、\f、+、-能够出现在参数开头,“点”能够在参数任何位置,E、e只能出现在参数中间(在这个题目中%00,“,‘ 也是可以的)
多字节字符解析模式带来的安全隐患
通俗的说,在php中有些函数只能处理单字节字符,如:var_export() 、addslashes()等,当开启多字节解析模式的时候,这些单字节处理函数去处理多字节就带来了安全隐患。
比如:%ab%27经过addslashes处理变成%ab%5C%27,在多字节模式输出的时候%ab%5C被识别成一个字符,最后使得addslashes转义失效
网友评论