简单审一下代码:
1、flag在flag.php
2、使用get请求方式给file传参
3、存在正则匹配,会过滤掉base和rot(i表示不区分大小写,也就是我们无法使用大小写绕过)
正则匹配详细知识请参考我之前的博客 http://t.csdnimg.cn/gef7W
4、存在文件包含函数include,第一方向考虑使用php伪协议
文件包含利用以及常用伪协议的理解也是建议各位可以先看我之前的博客
http://t.csdnimg.cn/f82xF
http://t.csdnimg.cn/C5QIo
回到这道题,我先尝试的是使用php://input(用于执行PHP代码)
但是没有回显,查看源码也没有发现
换用php://filter(用于读取源码)
因为flag在flag.php,并且这里过滤掉了base和rot,没关系我们使用其他编码方式输入输出即可
构造payload:?file=php://filter//convert.iconv.SJIS*.UCS-4*/resource=flag.php
或者使用utf编码
构造payload:?file=php://filter/convert.iconv.utf8.utf16/resource=flag.php
拿到 flag{d7e2325b-6358-49c3-8c0d-0c17addf7a1e}