回到ParseTemplateBehavior.class.php中才发现这个被我忽视的else分支,这里不就调用了template的fetch方法吗,于是喜上眉梢,那么什么时候会进入else分支呢
这里我做了一个合_Mask理的猜测,就是传入的参数是之前没有传过的,那么就会进入else,否则进入if,然后我在else分支添加了一行echo 444444;然后请求?a=fetch&content=phpinfo(这个请求是之前没有发送过的)
果然页面打印处444444,说明进入了else分支,那么content的流向就很清晰了:
先是顺着上面的路径写入cache文件,最后调用Storage::load加载cache文件,最终导致代码执行。
啊~这一处的payload就先写到这吧,好久没写文章了,累死了~