用ctf-wscan扫一下
看着有点像git泄露,输入.git查看一下,发现是403拒绝访问,说明存在git泄露只不过我们没法访问
可以用lijiejie的GitHack下载一下
下载下来打开有两个文件。
flag.php内容是读取flag文件赋值给$flag变量
index.php打开在最下面有一段PHP代码
遍历传入的get参数,要求传入的参数的键为flag并且等于$x又要求$x不等于flag,满足要求就会退出脚本。(这个两个要求相互矛盾根本不可能完成)
没有传入flag的话退出脚本,并输出$yds变量
如果post传入flag=flag或者get传入的flag=flag退出脚本,并输出$flag变量
我们可以利用第二个foreach和第二个if实现绕过。可以构造payload:?yds=flag,经过变量覆盖后变为$yds=$flag,这样页面就会将flag输出。
也可以利用第二个foreach和第三个if实现绕过。可以构造payload:?is=flag&flag=flag