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),下載地址: http://www.dedecms.com/products/dedecms/downloads/
2、使用phpstudy搭建web環境
3、把下載好的原始碼放到網站根目錄下(www),然後開啟phpstudy, 瀏覽器訪問http://192.168.10.171/dedecms/uploads/install/index.php
4、點選我已閱讀並繼續。然後是環境檢測,儲存預設即可
5、接下來是引數配置,需要設定的只有資料庫密碼,把自己的密碼填上去就行了
6、然後就把環境搭好了
7、登入後臺,開啟會員功能
三、漏洞復現
1、首先進入會員中心,必須是管理員的許可權,因為後面上傳檔案有許可權限制。進入會員中心後進入內容中心模組
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、通過上傳圖片馬獲得的上傳地址,瀏覽器訪問http://192.168.10.171/dedecms/uploads/uploads/allimg/190808
10、點選上圖的位置,可以看到如下圖所示,說明這個是之前上傳的那個沒有返回上傳地址一句話木馬
11、菜刀連線
四、漏洞防禦
1、 在伺服器端使用”白名單”的方式檢查上傳檔案的型別
2、 強制將所上傳的圖片的字尾修改”.jpg”,”.png”,”.gif”等格式
3、 升級