题解
通过查看源代码,可以发现代码没有删除,所以应该是有备份或者残余代码,一般的格式有两种,一个为.swp,另外一个为.bak,一个个试,当然这个东西有前提,就是你要确定当前显示的页面是什么,通过测试是index.php,然后就是通过.bak得到源代码。
发现源代码中有extract函数,这个函数的作用是将键值构造成变量名和值,也就是如下例子:
[“abc”:1,”ccc”:2];
通过extrace函数后相当于在当前位置加入了$abc=1;$ccc=2;这两个语句,是不是非常6.
接着就是file_get_contents函数,这个函数的参数为数字或者为空或者为不存在的文件时会报错,导致$content值的属性为null,那么我们就只要让$shiyan为null就可以了。
所以参数上写上flag=&shiyan=就可以了,也可以写上flag=77.php&shiyan=(反正他没有这个文件)。其实当flag为空值或者数字的时候,这个函数会报错,但是虽让php即使报错了也会继续往后执行代码,哎,罪啊,就这么得到flag了,当然这个flag有点乱,但是我们还是发现了{,},f,a,l,g,这些字母都在,证明可能用了某种移位加密算法,所以尝试使用凯撒密码处理一下,最后的flag就出来了。