DedeCMS V5.7 SP2前臺文件上傳漏洞(CVE-2018-20129)

DedeCMS V5.7 SP2前臺文件上傳漏洞(CVE-2018-20129)

一、漏洞描述

織夢內容管理系統(Dedecms)是一款PHP開源網站管理系統。Dedecms V5.7 SP2版本中的uploads/include/dialog/select_images_post.php文件存在文件上傳漏洞,遠程攻擊者可以利用該漏洞上傳并執行任意PHP代碼。

該漏洞利用條件:1、需要開發會員注冊功能 2、權限必須是管理員,普通用戶無法寫入文件

二、漏洞環境搭建

1、官方下載DeDeCMS V5.7 SP2(UTF-8),下載地址: //www.dedecms.com/products/dedecms/downloads/

2、使用phpstudy搭建web環境

3、把下載好的源碼放到網站根目錄下(www),然后開啟phpstudy, 瀏覽器訪問//192.168.10.171/dedecms/uploads/install/index.php

  

4、點擊我已閱讀并繼續。然后是環境檢測,保存默認即可

  

5、接下來是參數配置,需要設置的只有數據庫密碼,把自己的密碼填上去就行了

  

6、然后就把環境搭好了

  

7、登錄后臺,開啟會員功能

  

三、漏洞復現

1、首先進入會員中心,必須是管理員的權限,因為后面上傳文件有權限限制。進入會員中心后進入內容中心???/span>

  

2、發布一個文章,點擊下面的編輯器的上傳圖片按鈕。

  

3、測試上傳一個test.jpg的圖片但是內容只有php一句話,下圖返回可以看到上傳失敗

  

4、測試上傳一個test.jpg的圖片但是內容只有php一句話和圖片的標識頭

  

5、查看代碼,在dedecms\include\dialog\select_images_post.php中的36行,過濾了一些看起來不正常的字符,可以通過以.p*hp后綴來繞過這行代碼

  

6、在38行處判斷了文件名是否包含了$cfg_imgtype的字符。查看cfg_imgtype所在的位置dedecms\install\config.cache.inc.php,可以構造abc.p*hp可以繞過36和38行代碼

  

7、從上面的正則表達式中可以看到,*、%、?、<>可以繞過限制,這里以”*”為例,構造payload繞過

7.1、點擊上傳,選擇準備好的一句話圖片木馬文件(一個test.jpg的圖片但是內容只有php一句話和圖片的標識頭)

  

  

7.2、用burp工具抓包,將test.jpg改為test.jpg.p*hp,下圖可以看到成功上傳,但是不知道上傳的路徑

  

7.3 制作一個隱藏度高點的圖片馬(圖片不損壞),然后上傳

  

7.4下圖可以看到成功上傳并且返回了上傳的地址

  

8、菜刀連接訪問,解析失敗,無法連接,可能是圖片和一句話制作的圖片馬影響了解析

9、通過上傳圖片馬獲得的上傳地址,瀏覽器訪問//192.168.10.171/dedecms/uploads/uploads/allimg/190808

  

10、點擊上圖的位置,可以看到如下圖所示,說明這個是之前上傳的那個沒有返回上傳地址一句話木馬

  

11、菜刀連接

  

四、漏洞防御

1、 在服務器端使用”白名單”的方式檢查上傳文件的類型

2、 強制將所上傳的圖片的后綴修改”.jpg”,”.png”,”.gif”等格式

3、 升級版本

posted @ 2019-08-11 14:10 雨中落葉 閱讀(...) 評論(...) 編輯 收藏