很明显的一个文件包含点,而且还包含了check.php文件
尝试使用伪协议去读取check.php文件内容
?filename=php://filter/read=convert.base64-encode/resource=check.php
很明显存在过滤,简单测了下,对read和base64关键字进行了过滤
简单的进行绕过:
?filename=php://filter/=convert.ba%2573e64-encode/resource=check.php
显示you have use the right usage , but error method,方法错误,换个iconv过滤器尝试下
使用convert.iconv.*过滤器等同于用iconv()函数处理所有的流数据
convery.iconv.*的使用有两种方法:convert.iconv.. convert.iconv./
支持的编码字符集如下所示:
UCS-4*UCS-4BEUCS-4LE*UCS-2UCS-2BEUCS-2LEUTF-32*UTF-32BE*UTF-32LE*UTF-16*UTF-16BE*UTF-16LE*UTF-7UTF7-IMAPUTF-8*ASCII*EUC-JP*SJIS*eucJP-win*SJIS-win*ISO-2022-JPISO-2022-JP-MSCP932CP51932...#具体支持的编码可见php官方文档:https://www.php.net/manual/zh/mbstring.supported-encodings.php
随便拿两个字符集构造payload进行尝试
/?filename=php://filter/convert.iconv.UCS-4*.UCS-4BE/resource=check.php
提示使用了正确的过滤器,但用法错误,那可以尝试通过上述字符集作为字典,进行交叉爆破尝试
没有看到flag信息,既然能进行任意文件读取了,尝试读下flag.php
根据爆破的字符集构造payload
?filename=php://filter/convert.iconv.EUC-JP%2a.UCS-4*/resource=flag.php
来源地址:https://blog.csdn.net/qq_36618918/article/details/128674773