MRCTF 2020

Web

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');
}

MD5 绕过

构造 payload gg[]=1&&id[]=2 进行绕过即可

is_numeric() 函数绕过

构造 payload passwd=1234567a 进行绕过即可获得到 flag

Ezpop

0x00 POP 链

0x01 构造序列化

构造 Payload 如下

将回显进行 base64 解码后即可获得 flag 。

PYWebsite

查看源代码存在一串神秘 JS

进入到 ./flag 后回显提示 除了购买者和我自己,没有人可以看到flag ,那就试试改下 X-Forwarded-For: 127.0.0.1 ,再查看源代码就可以发现 flag 了。

Last updated