原题:攻防世界
内容:
根据题目名字和内容源码分析出这是一个文件包含漏洞的题
用到的主要知识点是php的伪协议
我们直接上伪协议:?filename=php:filter/read=convert.base64-encode/resource=check.php
其中php:filter/是伪协议的标准,read设定一个或多个过滤器名称(非必要可以去掉),convert.base64-encode为过滤器,resource为要过滤的文件
提示我们do not hack。猜测过滤了某些关键词
这样就只能一个一个试了,首先read非必要文件,我们尝试去掉read
发现还是不行,我们就要考虑是不是base64被过滤了,换了几个其他的base解码后发现还是一样,推测base编码和encode都被过滤了,所以尝试别的解码。
iconve转码,iconve能将变量进行转码,格式为inconve(编码1,编码2.变量),意思是将变量由编码1的格式转化为编码2.
所以我们这样
成功了!我们看见了过滤的源码,但还是没有发现flag。说明flag不在check.php文件
进行后台扫描
可以看到从我的字典扫描下有三个文件,除了check和index,还有一个flag.php文件,所以我们将伪协议要过滤的文件从check.php修改为flag.php
成功了