Drupal 遠程代碼執行漏洞(CVE-2019-6339)

Drupal 遠程代碼執行漏洞(CVE-2019-6339)

一、漏洞介紹

Drupal core是Drupal社區所維護的一套用PHP語言開發的免費、開源的內容管理系統。

Drupal core 7.62之前的7.x版本、8.6.6之前的8.6.x版本和8.5.9之前的8.5.x版本中的內置phar stream wrapper(PHP)存在遠程代碼執行漏洞。遠程攻擊者可利用該漏洞執行任意的php代碼。

二、漏洞危害

遠程代碼執行。

三、漏洞驗證

環境搭建:

實驗環境 系統 IP地址
攻擊機 win10 192.168.18.7
靶機 win10 192.168.18.7:8088

這裏我使用Vulhub搭建環境:
執行如下命令啓動drupal 8.5.0的環境: bash docker-compose up -d環境啓動後,訪問
http://your-ip:8088/(這裏我修改了配置文件,默認是8080端口)
將會看到drupal的安裝頁面,一路默認配置下一步安裝。因爲沒有mysql環境,所以安裝的時候可以選擇sqlite數據庫。
安裝成功後如圖所示:
在這裏插入圖片描述

如下圖所示,先使用管理員用戶上傳頭像,頭像圖片爲構造好的 PoC,參考thezdi/PoC的PoC。
在這裏插入圖片描述

Drupal 的圖片默認存儲位置爲 /sites/default/files/pictures/<YYYY-MM>/,默認存儲名稱爲其原來的名稱,所以之後在利用漏洞時,可以知道上傳後的圖片的具體位置。

訪問 http://127.0.0.1:8088/admin/config/media/file-system,在 Temporary directory 處輸入之前上傳的圖片路徑, phar://./sites/default/files/pictures/2020-07/blog-ZDI-CAN-7232-cat.jpg,保存後將觸發該漏洞。如下圖所示,觸發成功。
在這裏插入圖片描述
看一下POC,
在這裏插入圖片描述
修改一下執行命令,比如ls -al,此時是6個字節數,要把s對應的字節數目改成6:
在這裏插入圖片描述

在Drupal的機制中,設定了這樣一條規則:
用戶上傳的圖片文件名將會被保留,如果出現文件名相同的情況,那麼文件名後面就會被跟上_0,_1依次遞增。
在這裏插入圖片描述

再次上傳,在 Temporary directory 處輸入新的上傳的圖片路徑, phar://./sites/default/files/pictures/2020-07/blog-ZDI-CAN-7232-cat_0.jpg,觸發成功。
在這裏插入圖片描述在這裏插入圖片描述

遺留問題:嘗試反彈shell失敗。

四、漏洞修復

目前廠商已發佈升級補丁以修復漏洞,補丁獲取鏈接:
https://www.drupal.org/sa-core-2019-002

參考鏈接:
https://vulhub.org/#/environments/drupal/CVE-2019-6339/
https://paper.seebug.org/897/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章