ThinkCMF 缓存Getshell¶
一、漏洞简介¶
二、漏洞影响¶
ThinkCMF X1.6.0ThinkCMF X2.1.0ThinkCMF X2.2.0ThinkCMF X2.2.1ThinkCMF X2.2.2
三、复现过程¶
常规操作¶
http://www.0-sec.org/index.php?a=display&templateFile=README.md&content=%3C?php%20phpinfo();die();
利用缓存文件getshell¶
由于thinkcmf2.x使用了thinkphp3.x作为开发框架,默认情况下启用了报错日志并且开启了模板缓存,导致可以使用加载一个不存在的模板来将生成一句话的PHP代码写入data/runtime/Logs/Portal目录下的日志文件中,再次包含该日志文件即可在网站根目录下生成一句话木马m.php
日志文件格式为YY_MM_DD.log,如当前日期为2019年12月12日,日志文件为19_12_12.log,完整路径为
data/runtime/Logs/Portal/19_12_12.log
payload 一
- 首先访问
<!-- -->
- 然后请求
<!-- -->
- 即可在http://www.0-sec.org/根目录生成m.php,密码是X
payload 二
- 首先访问
<!-- -->
- 然后菜刀链接(密码也是x)
<!-- -->