%3c --php调用--%3e,ThinkCMF 框架上的任意内容包含漏洞

0x01  背景

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

ThinkCMF提出灵活的应用机制,框架自身提供基础的管理功能,而开发者可以根据自身的需求以应用的形式进行扩展。

每个应用都能独立的完成自己的任务,也可通过系统调用其他应用进行协同工作。在这种运行机制下,开发商场应用的用户无需关心开发SNS应用时如何工作的,但他们之间又可通过系统本身进行协调,大大的降低了开发成本和沟通成本。

官网:http://www.thinkcmf.com

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 漏洞危害

远程攻击者在无需任何权限情况下,通过构造特定的请求包即可在远程服务器上执行任意代码

0x04 漏洞复现

1) 这里我用的是ThinkCMF x2.2.3版本

下载thinkcmf

85956e14b26f1267eec29882b1529516.png

把他移到网站后直接放到phpstudy的目录下,访问路径/ThinkCMFX/

e5e1f5fb18aa3566332c6519919c1f8f.png

2)安装向导 看自己真实情况填写!!! 我这边 数据库连接密码是root

7d01451b9a2efa90080ecff90150b9de.png

5f91103bd3dc405e6a0f24c8e7a4466d.png

32e1dda4d6749772fd23eb2526822adc.png

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

phpinfo版payload如下:

执行payload,页面是空白的

1edb4a71aa99d5de7cfa89817102b492.png

访问test.php 文件

http://192.168.115.21/thinkcmf/test.php

93cc630ce3cf978c7ad053ed45827994.png4)  构造poc2  通过构造a参数的display方法,实现任意内容包含漏洞

payload:

?a=display&templateFile=README.md

fa93dd4e896de5bd28fb98428abe6745.png

通过文件包含可以访问到之前写的test.php文件

bca5f77f26b0f05e727f6f83d667cd4e.png

5)查看之前写入的test.php文件

d02d3bfae57756d0ba4a28853ee3010d.png

6) 写入一句话木马文件

29753454c10738eb251e09675d831b2f.png

7) 蚂蚁测试链接

685c0700a698ed32ca30a6376e305b11.png

4a462b4cf6434a27d71d36bd08586df7.png

fb0d5ff2371bf075d1be55ec13c724f7.png

0x05 漏洞修复建议

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

参考链接:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值