打开题目 一篇代码

先进行代码审计
看到PHP正则表达式 preg_match

显然在传参时 它会进行过滤 过滤后面括号中的关键字和特殊符号
第二个正则表达式也会过滤PHP的内置函数 即使我们找到了某个函数恰好可以绕过第一个 但也过不去第二个过滤
函数 get_defined_functions

所以这里我们利用异或或者取反来绕过
一般flag文件都会存放在根目录下 但是这里我们知道在哪 所以尝试一下
使用print_r函数 进行目录扫描

利用在线php运行我们构造的payload

看到的存在flag.php目录文件

再利用highlight_file函数读取flag.php中的值

得到flag
