易企CMS(yiqicms)是国内知名的营销型企业建站系统,基于PHP+MySQL开发。免费开源,对SEO较为友好。

近日,阿里的补丁监控平台Diviner监测到yiqicms在特定情况下被Getshell的漏洞。安全脉搏胖编辑觉得又会有小伙伴写各种插件到各种平台了~~~

yiqicms

0x01 背景

出现该漏洞的程序来自yiqicms1.8以下版本,在某些Web套件中可触发Getshell漏洞。

yiqicms_1

 

 

 

0x02 分析

<?php

error_reporting(E_ALL ^ E_NOTICE);

header("content-type:text/html; charset=utf-8");

require_once '../include/file.class.php'

$step = $_GET["step"];

$action = $_POST["action"];

if($action == "save") //未采用install.lock类似机制验证机制,进入安装过程,可能导致重装

{

$dbhost = $_POST["dbhost"];

$dbname = $_POST["dbname"];

$dbuser = $_POST["dbuser"];

$dbpass = $_POST["dbpass"];

$dbprefix = $_POST["dbprefix"];

$adminuser = $_POST["username"];

$adminpass = $_POST["userpass"];

if(empty($dbpass))

{

….省略若干行

$dbpass= "";

}

$configsource = "<?php \n\$cfg_db_host = \“$dbhost\”;\n\n". $dbhost采用”号,可通过植入特殊的密码或者数据库名传入恶意的数据到$configsource

….省略若干行…

"\n?>";

if(file_exists("../include/config.inc.php"))

 

{

rename("install.php","install.php.bak");//将install.php重命名为.bak,在特定情况下存在解析漏洞时,可直接利用install.php.bak进行安装Getshell

}

$filedata->writefile("../include/config.inc.php",$configsource);

//直接将数据写入/include/config.inc.php  Getshell。

exit("<script>window.location='install.php?step=finish';</script>");

}

?>

 

0x03 利用

当服务器存在iis 7.0/7.5或nginx的畸形解析漏洞时,可以采用直接访问/install/install.php.bak/.php的方式重新激活安装。

然后使用特殊的密码闭合文件,植入恶意代码到/include/config.inc.php。

 

0x04 修复

目前,官方已经在1.8版本中修复该漏洞,请下载易企CMS最新版程序(1.8纪念版)。下载地址:

http://down.yiqicms.com/files/yiqicms-v18final.zip

如果您是想在1.8版本升级至1.8纪念版的话,请下载1.8升级1.8纪念版本补丁:

http://www.yiqicms.com/article/yiqicms-18to18final-pack.html

 

关于阿里安全研究实验室:

阿里巴巴安全研究实验室,隶属于阿里巴巴集团-基础安全部,致力于前沿安全威胁研究,力争成为世界顶级的安全研究机构。

 

【原文:易企CMS特定情况下Getshell漏洞分析 作者:扶夙 conqu3r 安全脉搏编辑整理发布】

源链接

Hacking more

...