zoukankan      html  css  js  c++  java
  • [MRCTF2020]Ez_bypass

    0x01

    打开页面首先可以得到的是一段php代码,进行代码美化以后放到PhpStorm中进行审计。

    还可以得到的就是页面上的一些提示信息:Please input first;总之先审一审代码。

    0x02

    第一部分

    先看代码的第一部分,也就是第一层if循环。这里要求的是通过get的方式传入两个参数id和gg。如果没有传入两个参数就会在页面上输出Please input first,也就和我们页面上的提示信息对应起来。还有就是包含了文件flag.php

    <?php
    include 'flag.php';
    $flag='MRCTF{i like u flag}';
    if(isset($_GET['gg'])&&isset($_GET['id'])) {
        $id=$_GET['id'];
        $gg=$_GET['gg'];
        // 通过get方式获取两个变量。id gg
           xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    } else {
        die('Please input first');
    }

    第二部分

    第二层if判断,在这层进行一个md5强碰撞,满足条件后会在页面输出You got the first step。否则我输出You are not a real hacker!

    这里进行的测试,先传递如id=1&gg=1可以看到页面上输出了You are not a real hacker!,继而进行下一步,传入两个值不同但MD之后的值相同的字符串。页面输出了You got the first step

    if (md5($id) === md5($gg) && $id !== $gg) {//md5 强碰撞
            echo 'You got the first step';
               xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
         } else {
            echo "You are not a real hacker!";
        }   
    id=M%C9h%FF%0E%E3%5C%20%95r%D4w%7Br%15%87%D3o%A7%B2%1B%DCV%B7J%3D%C0x%3E%7B%95%18%AF%BF%A2%00%A8%28K%F3n%8EKU%B3_Bu%93%D8Igm%A0%D1U%5D%83%60%FB_%07%FE%A2
    &
    gg=M%C9h%FF%0E%E3%5C%20%95r%D4w%7Br%15%87%D3o%A7%B2%1B%DCV%B7J%3D%C0x%3E%7B%95%18%AF%BF%A2%02%A8%28K%F3n%8EKU%B3_Bu%93%D8Igm%A0%D1%D5%5D%83%60%FB_%07%FE%A2

    第三部分

    这一部分要求通过post的方式获取一个参数passwd,后面的if判断中都是在对passwd进行判断。

    首先要求passwd不为空,其次是passwd必须不是一个数字,最后passwd==1234567

    很明显的,这里是一个php弱类型的问题哈,只需要post传入 passwd=1234567a即可满足判断语句,最后 highlight_file('flag.php');输出flag.php

     if(isset($_POST['passwd'])) {
                $passwd=$_POST['passwd'];
                //通过POST传入一个参数passwd ,并要求passwd不是数字,但是要求passwd==1234567
                //然后输出flag.php
                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');
            }

    0x03

    总结一下,这道题主要考察的点就是

    1.md5强碰撞

    2.php弱类型的比较

  • 相关阅读:
    NHibernate 配置增加代码感知
    NHibernate应用开发
    Spring.Net+NHibernate+Castle学习网站
    Windows Live Writer 网易博客配置
    第一章. 序言
    NHibernate之配置文件属性说明
    Log4Net各参数API
    EntityFramework 6.0< Code First > 连接 Mysql数据库
    maven阿里云中央仓库
    eclipse安装maven
  • 原文地址:https://www.cnblogs.com/ersuani/p/14101356.html
Copyright © 2011-2022 走看看