漏洞文件发生在/dede/tpl.php中,程序直接将经过stripslashes()
处理的$content
写入了/include/taglib/xxx.lib.php文件。
这个文件的filename和content都没有定义,原因就在于全局变量注册的特性,在common.inc.php中定义了如何处理提交的参数:
并且还对提交的参数进行addslashes函数的处理。
回到tpl.php这个文件,csrf_check()
在/dede/config.php中定义,用于检测token,我们可以访问/dede/tpl.php?action=upload来获取token值
访问:http://localhost/dedecms/dede/tpl.php?action=savetagfile&filename=ca01h.lib.php&content=<?php phpinfo();?>&token=5d2d1d2007a09f3b753b794ed0976449
https://mochazz.github.io/2018/03/08/代码审计之DedeCMS V5.7 SP2后台存在代码执行漏洞(复现)/