打开网页,一片黑和几行字,正常流程,直接查看源代码,发现除了现实的内容外还有一句话,这里有两种方法,直接在网页上访问该文件或者找到这句话点击,可以从左上角到右下角选中就可以发现这句话的位置了,
访问后有显示一个页面:
点击又出现一个界面:
到这里,我们可以思考是不是页面中间有flag,但闪的太快了,让我们来抓包一个一个包的放一下试试,结果发现两个页面间什么也没有,那就试一下把包在重发器里发一下看看是不是在源码里能有什么收获:
我们得到了一个新的文件,在网页上访问可以得到一段源码:
第一眼我们应该就看到了flag!去网页实践一下看看能不能得出flag:
发现并没有flag,返回原来的页面,我们来看看这段源码:
strstr(str1,str2)这个函数的意思是在str1中匹配看有没有出现str2,有的话返回str1中str2之后的部分,例如:
str1: asdzxcqwezxc
str2:asd
则返回zxcqwezxc,若没有则返回NULL。
整个源码读下来我们发现,这是一道get传参的文件包含题目,并且他过滤了一些关键字。因为本来存放flag的文件运行出来的网页里没有flag,那flag就可能在源码里,观察关键字,并没有过滤filter,所以我们可以用php伪协议php//:filter来获取源码:
palyoad: ?file=php://filter/convert.base64-encode/resource=flag.php
可以利用hackbar来构造伪协议包含文件:
将得到的base64编码解码,在源码中寻找flag。
有关伪协议filter可参考该文章的4.5:
https://blog.youkuaiyun.com/qq_27710251/article/details/108039876
(文章作者介意的话请私信联系删除!!!)