BUUCTF-[BJDCTF2020]Mark loves cat

BUUCTF-[BJDCTF2020]Mark loves cat_第1张图片

 

用ctf-wscan扫一下

BUUCTF-[BJDCTF2020]Mark loves cat_第2张图片

看着有点像git泄露,输入.git查看一下,发现是403拒绝访问,说明存在git泄露只不过我们没法访问

BUUCTF-[BJDCTF2020]Mark loves cat_第3张图片

可以用lijiejie的GitHack下载一下

BUUCTF-[BJDCTF2020]Mark loves cat_第4张图片

BUUCTF-[BJDCTF2020]Mark loves cat_第5张图片

下载下来打开有两个文件。

BUUCTF-[BJDCTF2020]Mark loves cat_第6张图片

flag.php内容是读取flag文件赋值给$flag变量

BUUCTF-[BJDCTF2020]Mark loves cat_第7张图片

index.php打开在最下面有一段PHP代码

BUUCTF-[BJDCTF2020]Mark loves cat_第8张图片

遍历传入的get参数,要求传入的参数的键为flag并且等于$x又要求$x不等于flag,满足要求就会退出脚本。(这个两个要求相互矛盾根本不可能完成)

没有传入flag的话退出脚本,并输出$yds变量

如果post传入flag=flag或者get传入的flag=flag退出脚本,并输出$flag变量

BUUCTF-[BJDCTF2020]Mark loves cat_第9张图片

我们可以利用第二个foreach和第二个if实现绕过。可以构造payload:?yds=flag,经过变量覆盖后变为$yds=$flag,这样页面就会将flag输出。

也可以利用第二个foreach和第三个if实现绕过。可以构造payload:?is=flag&flag=flag

BUUCTF-[BJDCTF2020]Mark loves cat_第10张图片

BUUCTF-[BJDCTF2020]Mark loves cat_第11张图片

你可能感兴趣的:(web,BUUCTF,web安全,安全,git,php)