我们看向这个题目的页面
他提示我们传入一个file,也就是我们可以直接在url里面进行get传参,我们传入一个url?file=1看看会返回什么
提示我们flag在flag.php里面,我们首先可以想到的是文件包含,然后我们看到了代码的第二行,allow_url_include:on
我们可以联想到php伪协议,这样我们就可以得到这一道题目的思路了。
使用php://filter读取到flag.php,将flag.php以base64的形式给显示出来,这样的话我们可以这样构造我们的payload
url?file=php://filter/read=convert.base64-encode/resource=flag.php
我们来解读一下上面的payload:
首先我们要传入file关键字的GET参数传递,php://是一种协议名称,php://filter是一种访问本地文件的协议,/read=convert.base64-encode表示的是读取的方式是base64编码后resouce=flag.php表示目标文件为flag.php
也就是说,flag.php最终会以base64的形式显示出来,我们最后使用base64解码就可以了。
理论存在,实践开始:
我们使用上面的payload
然后我们得到了一段base64,我们使用base64解密,因该就可以得到答案了
得到flag。
以上是本人的一套解题思路,如果有问题的话,请及时提出来,本人刚学习网络安全没有太久,可能内容有一些错误,大佬勿喷。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。