?

Sep 26 2017

基于ThinkPHP的2個CMS后臺GetShell利用

首頁 » 漏洞收集 » 基于ThinkPHP的2個CMS后臺GetShell利用   

* 本文作者: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,然后配置一下數據庫信息即可。1.png

2.png

 

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

0×02本地后臺getshell

Jymusic cms

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

3.png

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

4.png

 

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

5.png

6.png

 

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

7.png

8.png

 

9.png

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

 

9.png

 

10.png

 

11.png

 

 

12.png

 

xyhcms

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

 

 

113.png

 

 

 

 

 

 

 

 

 

 

 

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

13.png

 

 

0×03總結

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

參考文章:

ThinkPHP5.0.10-3.2.3緩存函數設計缺陷可導致Getshell

 

 

如果您喜歡本博客,歡迎點擊圖片定訂閱到郵箱填寫您的郵件地址,訂閱我們的精彩內容:

正文部分到此結束

文章標簽: thinkphp漏洞

版權聲明:若無特殊注明,本文皆為( mOon )原創,轉載請保留文章出處。

也許喜歡: «Bypass D盾_IIS防火墻SQL注入防御(多姿勢) | 通過PHP Session將LFI轉化為RCE»

你腫么看?

你還可以輸入 250/250 個字

? 微笑 大笑 拽 大哭 親親 流汗 噴血 奸笑 囧 不爽 暈 示愛 害羞 吃驚 驚嘆 愛你 嚇死了 呵呵

評論信息框

這篇文章還沒有收到評論,趕緊來搶沙發吧~

?
?
河北11选5开奖