代码审计,这里出现了parse_str可以利用get传入_POST[flag1]=8gen1来进行写入_POST\[flag1\]两个赋值,覆盖掉超全局_POST,在extract的时候又读取flag1=gen1和flag2=gen1,接着传入504_SYS.COM,PHP特性:自动转换传入参数名中的特殊字符:. → _(下划线);空格 → _;[ → 被特殊处理(用于数组)
所以传入504[SYS.COM=1&sys=echo $flag
这里没法执行系统命令,也过滤很多符号,因为已经包含flag.php文件,所以应该有$flag变量,直接执行输出得到答案
