基於ThinkPHP的2個CMS後臺GetShell利用">基於ThinkPHP的2個CMS後臺GetShell利用

分類:IT技術 時間:2017-09-26

* 本文作者:Mochazz,本文屬FreeBuf原創獎勵計劃,未經許可禁止轉載

文章作者:Mochazz

思路作者:szrzvdny

0×00 前言

ThinkPHP是為了簡化企業級應用開發和敏捷WEB應用開發而誕生的,由於其簡單易用,很多cms都基於該框架改寫。然而 Thinkphp在緩存使用卻存在缺陷,生成緩存時,Thinkphp會將數據序列化存進一個php文件,這就產生了很大的安全問題。

0×01 環境搭建

工具

phpstudy

http://www.phpstudy.net/phpstudy/phpStudy20161103.zip

Jymusic cms

http://www.jyuu.cn/topic/t/41

xyhcms

https://pan.baidu.com/s/1qYhTKc8

搭建

安裝好phpstudy,把jymusic目錄下的所有文件及文件夾拷貝到phpstudy的www目錄下,瀏覽器訪問 http://localhost/install.php ,然後配置一下數據庫信息即可。

另外xyhcms安裝類似,這裏不贅述。

0×02本地後臺getshell

Jymusic cms

先看一下管理員登錄頁面的源代碼,看到核心入口為ThinkPHP.php,找到並打開查看

發現應用緩存目錄為Temp文件夾

打開Temp文件夾會發現有很多緩存文件,我們隨便打開即可看看,可以發現裏面的內容有點像網站配置信息,只不過是序列化後的結果

所以我們在後臺的網站設置處插入一句話,就會被ThinkPHP寫入緩存文件。而且這個緩存文件的文件名都是固定不變的,這也是導致getshell的原因。

成功插入後,我們來執行一下phpinfo()函數看看,菜刀也能成功連接

xyhcms

xyhcms和Jymusic cms一樣使用了ThinkPHP框架,這裏不贅述,直接給出緩存文件的位置

xyhcms其實還有一個漏洞,在模板管理處可以添加一個php後綴的模板,文件內容也未做任何檢測過濾。下面是成功getshell過程

0×03總結

其實現在很多小型網站都是基於ThinkPHP框架開發的,很多都存在這種問題。當你找不到上傳點的時候,可以試試這種方法。當然,肯定有人會說,這個要後臺登錄才能利用,你只是在本地復現,都沒實戰過,說個錘子。其實,我還真的實戰過,只是不方便貼圖,使用弱口令做密碼還是挺多的,所以錘子未必不可用。還有,有的網站,雖然說你用很簡單的方法getshell,但是其實可以研究的東西還有很多,比如你getshell之後發現權限不夠,那就可以試試提權,例如用udf提權、使用mysql遠程連接結合sqlmap提權等等,雖然有些方法很早就有了,但是並不是每個人都會,而且一些老的思路還有可能啟發你新的思考,繼續加油吧!


Tags: 緩存 文件 ThinkPHP phpstudy 序列化 文件夾

文章來源:


ads
ads

相關文章
ads

相關文章

ad