攻防世界-web-fileclude

1. 题目描述

打开链接,可以看到如下代码:
攻防世界-web-fileclude_第1张图片
代码意思很简单,让我们传递两个参数,一个file1,一个file2,如果file2的内容为hello ctf,那么就可以在代码中include file1

2. 思路分析

这道题显然是一个文件包含的问题,而且输入没有做任何过滤,这样的话就比较简单了,可以参考本人之前的帖子https://blog.csdn.net/wuh2333/article/details/130734450

利用php://input来绕过file2文件内容的校验
攻防世界-web-fileclude_第2张图片
file1则可以通过php://filter来获取flag.php的内容

攻防世界-web-fileclude_第3张图片

3. 解题过程

  • 将请求类型改为POST
  • file1 = php://filter/read=convert.base64-encode/resource=flag.php
  • file2 = php://input
  • body中内容为hello ctf

攻防世界-web-fileclude_第4张图片
攻防世界-web-fileclude_第5张图片
然后将这串base64解码即可,最终的flag为cyberpeace{cfb80fbae98fff9a9435c8e31c47a89c}

总结

简单的一道文件包含题,主要考察使用php://filter和php:input如何上传和读取文件

你可能感兴趣的:(安全,web安全)