我在做题的时候注意到两个问题,所以记录一哈这个题:
提示是什么意思呢?我不知道,但是我可以看源代码,这里是第一个我所注意到的问题,因为第一遍看源码的时候马虎了,没有发现隐藏的关键信息,所以有时候审阅代码一定要细致。来看源码:
看到了这些目录,一直点点点,可以到上面这一步,查询结束了, 说我没看清应该是指有信息一闪而过了,借助burpsuite 抓包来看看吧:
如此,又发现一个目录,继续查看:
又引导我去下一个目录:flag.php:
flag应该如他所说,就在这,但是不能直接查阅,怎么办?PHP伪协议:
php:// 输入输出流
PHP 提供了一些杂项输入/输出(IO)流,允许访问 PHP 的输入输出流、标准输入输出和错误描述符, 内存中、磁盘备份的临时文件流以及可以操作其他读取写入文件资源的过滤器。
php://filter(本地磁盘文件进行读取)
元封装器,设计用于”数据流打开”时的”筛选过滤”应用,对本地磁盘文件进行读写。
具体是用了这个:
?file=php://filter/read=convert.base64-encode/resource=xxx.php
第二个问题就在这,这么多目录,我应该在哪里使用伪协议查阅呢?如果对整一个的环境有清晰的了解,就很简单,这里应该为/secr3t.php目录下:
view-source:http://8899f448-c839-47f9-8261-2876d0376748.node4.buuoj.cn:81/secr3t.php?file=php://filter/read=convert.base64-encode/resource=flag.php
顺利执行的话,会回显一长串base64的编码,如下:
将它解码:我们要的flag就出来了: