漏洞文件:/thinksns/apps/w3g/Lib/Action/PublicAction.class.php
函数:
跟踪assign函数
/thinksns/core/OpenSociax/Action.class.php
函数:
如果$name为数组,则跟全局变量$tVar合并,而后执行的display()函数,而该函数调用则用到了$tVar变量
display()函数的文件为/thinksns/core/OpenSociax/functions.inc.php
函数:
调用了fetch函数,fetch函数文件/thinksns/core/OpenSociax/functions.inc.php
函数:
调用display()函数时候,$templateFile='',$tvar=array(),两个参数都为空,同样进入fetch()时两个函数也为空,
fetch()函数中,如果$templateFile=''为空,则执行
然后生成模版缓存文件,执行
$templateCacheFile = C('TMPL_CACHE_PATH').'/'.APP_NAME.'_'.tsmd5($templateFile).'.php';
获得的文件路径为
/thinksns/_runtime/tplcache//w3g_7ea60510bedf5769.php
然后执行载入模版缓存
代码extract($tvar, EXTR_OVERWRITE);
include $templateCacheFile;
释放变量,覆盖$templateCacheFile即可任意文件包含