zl程序教程

您现在的位置是:首页 >  其他

当前栏目

[SWPUCTF 2021 新生赛]include解题思路

2023-02-19 12:20:12 时间

我们看向这个题目的页面

他提示我们传入一个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。

以上是本人的一套解题思路,如果有问题的话,请及时提出来,本人刚学习网络安全没有太久,可能内容有一些错误,大佬勿喷。