BJDCTF2020 Mark loves cat

本题考点:

  • 代码审计
  • 变量覆盖

扫描目录发现,存在 git 源码泄露。

下载出 index.php


<?php

include 'flag.php';

$yds = "dog";
$is = "cat";
$handsome = 'yds';

foreach($_POST as $x => $y){
    $$x = $y;
}

foreach($_GET as $x => $y){
    $$x = $$y;
}

foreach($_GET as $x => $y){
    if($_GET['flag'] === $x && $x !== 'flag'){
        exit($handsome);
    }
}

if(!isset($_GET['flag']) && !isset($_POST['flag'])){
    exit($yds);
}

if($_POST['flag'] === 'flag'  || $_GET['flag'] === 'flag'){
    exit($is);
}



echo "the flag is: ".$flag;

flag.php

<?php

$flag = file_get_contents('/flag');

$$x 就相当于是((x),这样就非常好理解变量覆盖漏洞了。

俩种解题方式

第一种,get 传参:yds=flag

第二种,get 传参:is=flag&flag=flag

更新于 阅读次数

请我喝[茶]~( ̄▽ ̄)~*

zeroc 微信支付

微信支付

zeroc 支付宝

支付宝

zeroc 贝宝

贝宝