一,漏洞复现
引起漏洞的最主要的问题是因为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网站,(建议自己搭建一个靶机,情况会更加可控)
第二步
进入网站后在网址后加上代码 ?a=fetch