美文网首页
is_numeric的理解&多字节字符解析模式带来的安全隐患

is_numeric的理解&多字节字符解析模式带来的安全隐患

作者: __周__ | 来源:发表于2018-06-27 10:31 被阅读0次

    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转义失效

    相关文章

      网友评论

          本文标题:is_numeric的理解&多字节字符解析模式带来的安全隐患

          本文链接:https://www.haomeiwen.com/subject/crqbyftx.html