美文网首页
php弱类型

php弱类型

作者: 浅影科技 | 来源:发表于2019-01-15 12:29 被阅读0次

    前言:

    本题考虑的是php弱类型、is_numeric()、int()强制类型转换

    代码:

    <?php
    show_source(__FILE__);
    $flag = "xxxx";
    if(isset($_GET['time'])){ 
            if(!is_numeric($_GET['time'])){ 
                    echo 'The time must be number.'; 
            }else if($_GET['time'] < 60 * 60 * 24 * 30 * 2){ 
                            echo 'This time is too short.'; 
            }else if($_GET['time'] > 60 * 60 * 24 * 30 * 3){ 
                            echo 'This time is too long.'; 
            }else{ 
                    sleep((int)$_GET['time']); 
                    echo $flag; 
            } 
                    echo '<hr>'; 
    }
    ?>
    

    知识点:

    int(),不能正确转换的类型有十六进制型字符串、科学计数法型字符串
    is_numeric()支持普通数字型字符串、科学记数法型字符串、部分支持十六进制0x型字符串
    
    

    分析:

    代码中,先是判断是不是数字,然后再进行int长短的限定判断
    也就是只能限定在5184000L< time < 7776000
    通过is_number() 能传入科学计数法,来进行绕过。

    如果是之间的操作,但是在遇到sleep()的话也只能等到明年了
    所以根据int不能处理科学计数法,而number上能处理

    img

    payload:
    ?time=5.185e6

    image.png

    相关文章

      网友评论

          本文标题:php弱类型

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