审计代码 传入参数a,进入parserIfLabel函数 发现参数a的模板,a的格式要匹配pattern,如{if:payload}{end if} 可知ifstr是a中匹配的第一组的值,即payload中的值 并且经过danger_key函数过滤 继续往下看 Ifstr经过很多过滤替换,最终里面不包含大括号就会进入一个eval语句 漏洞正是出现在这里 往回看danger_key过滤函数 好家伙,不仅将一大堆关键字符替换成*,还进行了二次检查 但是可以用var_dump()函数绕过 构造a={i…