查看题目又是文件包含尝试使用以前用过的包含语句:
php://filter/read=convert.base64-encode/resource=/var/www/html/flag
发现被过滤了
测试被过滤的字段
发现read被过滤了和base64-encode被过滤了
string.rot13也被过滤了
网上查找php://filter相关资料发现一个可以不用read的过滤器,好像都可以不用啊????
iconv过滤器也就是对输入输出的数据进行一个编码转换,其格式为convert.iconv.<input-encoding>.<output-encoding>或者convert.iconv.<input-encoding>/<output-encoding>,表达的意思都是相同的,即将输入的字符串编码转换成输出指定的编码,例如:
file_get_contents("php://filter/read=convert.iconv.utf-8.utf-16/resource=data://text/plain,m1sn0w".chr(12));
修改一下payload去掉被过滤的read
自信猜测flag文件名为flag.php
构造payload为:php://filter/convert.iconv.utf-8.utf-16/resource=flag.php
果然爆出了flag,哈哈哈完美perfect!!!!!!
总结:又新学了一个iconv过滤器过滤器,然后发现不用read=也可以读取文件。