1. 题目描述
打开链接,可以看到如下代码:
代码意思很简单,让我们传递两个参数,一个file1,一个file2,如果file2的内容为hello ctf,那么就可以在代码中include file1
2. 思路分析
这道题显然是一个文件包含的问题,而且输入没有做任何过滤,这样的话就比较简单了,可以参考本人之前的帖子https://blog.csdn.net/wuh2333/article/details/130734450
利用php://input来绕过file2文件内容的校验
file1则可以通过php://filter来获取flag.php的内容
3. 解题过程
- 将请求类型改为POST
- file1 = php://filter/read=convert.base64-encode/resource=flag.php
- file2 = php://input
- body中内容为hello ctf
然后将这串base64解码即可,最终的flag为cyberpeace{cfb80fbae98fff9a9435c8e31c47a89c}
总结
简单的一道文件包含题,主要考察使用php://filter和php:input如何上传和读取文件