制丨阿星
整理丨阿星
昨天小狸给大家复现了tomcat CVE-2020-1938漏洞,那今天咱们一起再来看看,最为经典的thinkCMF文件包含漏洞。
首先我们在去介绍这个漏洞之前,我们需要先了解一下这个漏洞thinkCMF。
thinkCMF它是一个开源的,支持swoole的开源内容管理框架,让web开发更快,节约时间,这个框架的话是基于thinkphp的二次开发框架,所以说在我们国内还是有大部分的网站使用到这样的一个框架的。
![a35ce0b1d89328c34fdcf1a456bfe0d0.png](https://img8.php1.cn/3cdc5/155f4/882/012703ab6fa1f8e4.png)
那么我们可以想象一下如果这个框架出现了一个漏洞,那它的影响范围是不是也同样很广呢?那接下来我们今天进一步的去探索一下thinkCMF的文件包含漏洞。
接下来我们就直接去复现一下这个漏洞。
1、构造a参数的fetch方法,实现任意文件写入,把php代码写入文件。
?a=fetch&templateFile=public/index&prefix="&content=file_put_contents('test.php','')
这个时候我先在本地搭建了这样的一个框架,如果说你们也想去复现一下这个漏洞,同样也是可以在本地搭建这个框架的。
![8d9c6898670663d679db78b5b8b531c2.png](https://img8.php1.cn/3cdc5/155f4/882/3ab4b97ab46af6d5.png)
这边我们所搭建的版本是ThinkCMFX 2.2.3的版本,然后我们去构造一个这样的漏洞攻击代码。
当我们构造完成以后,回车就会发现网页是空白的,那这个时候我们可以想到test.php文件,我们去访问它一下。
当我们访问test.php文件的时候,就会通过刚才的代码将phpinof写入到test.php里面去。
![7ac5932fdc7c203a2ebb97bdbcc8ad59.png](https://img8.php1.cn/3cdc5/155f4/882/6650e68298b50db0.png)
我们可以看到这个文件在当前根目录下方生成了这样的一个文件。
![b8f65f8143ded61448af130e80d63c89.png](https://img8.php1.cn/3cdc5/155f4/882/785a88e883eff048.png)
这个就是任意文件的一个写入。
那么说恶意的用户,把样的一个代码写成一些一句话代码,那么就能够将一句话的木马写入到对方的网站路径下面去,在通过webshell管理工具去进行连接。
我们再去看一下任意内容的包含漏洞。
通过构造a参数的display方法,在去选择模板文件内容为README.md,那么通过这样的一个payload我们就能够去把README.md的这样一个文件给包含出来。
?a=display&templateFile=README.md
然后我们去到浏览器界面输入README.md回车,就可以发现我们能够成功的包含出这样的一个代码。
![97f50238dee2e43a93c283c93fed0dd8.png](https://img8.php1.cn/3cdc5/155f4/882/f046e0091ec3ec32.png)
为了给大家演示得更加明显一点,我们确定能够包含,那么小狸这里手动在网站的根路径下面去创建了一个test.txt文件。
![8dbb392ec8b09a56dd8c5e82c7ba3cde.png](https://img8.php1.cn/3cdc5/155f4/882/b64e0da06bd44aa4.png)
那这个文件我们去看一下它的内容。
![6ce30654832eaac83d8f3acc2c2c3d42.png](https://img8.php1.cn/3cdc5/155f4/882/0fa53fd46de957a8.png)
我们通过这样一个文件包含漏洞去包含了一个.txt的文件,那么我们也是能够成功的去解析这里面的phpinof的代码的。那么这个也是一个包含。
那这个漏洞怎么去修复呢?
漏洞修复将HomebaseController.class.php和AdminbaseController.class.php类中display和fetch函数修饰符改为protected。
这个的原因就是因为它的这两个方法是公用的,我们需要把它改为私用的,这样才可以不被前端的用户去任意的利用。
那么今天小狸就为大家复现到这里,我们今天讲解了thinkCMF文件包含漏洞的一个复现和它的修复方式,如果接下来有什么不懂的可以来问一下我哦,小狸时时刻刻都在为大家服务。
![ebd982c323d66e27eb62a9106fdcf7b6.png](https://img8.php1.cn/3cdc5/155f4/882/4850fc80c46e677d.png)