[BJDCTF2020]Mark loves cat

考点

1.git泄露

2.githack下载源码

3.变量覆盖

输出变量$handsome,满足条件$_GET[‘flag’] == = $x && $x !=== ‘flag’

?handsome=flag&flag=x&x=flag

原因第一个是让flag变成参数$handsome,同时要让第二个检测,x不能等于flag,中间另设一个变量x,因为有foreach使我们get请求里面赋值的变量重新赋值为我们的键名

foreach($_GET as $x => $y){    
    $$x = $$y;  //GET型变量重新赋值为当前文件变量中以其值为键名的值
}

假如我们让a=b,那么最后访问a时得到的就是b

这里的值表面是 x 但前面我们进行了变量覆盖使得 x=flag 所以在这里我们输出x的值就是flag的值

发表评论

蜀ICP备2022010829号