Drupal遠程代碼執行(CVE-2019-6339)——Dcoker復現

該漏洞概述

漏洞簡介

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)存在遠程代碼執行漏洞。

影響版本

Drupal core 7.62之前的7.x版本、8.6.6之前的8.6.x版本和8.5.9之前的8.5.x版本

危害

遠程攻擊者可利用該漏洞執行任意的php代碼。
 

漏洞復現

採用的是vulhub的鏡像進行復現的地址 https://vulhub.org/#/environments/drupal/CVE-2019-6339/
先開啓docker
在這裏插入圖片描述
在對應cve目錄下編譯運行環境
在這裏插入圖片描述
環境啓動後,訪問 http://127.0.0.1:8080/ 將會看到drupal的安裝頁面,一路默認配置下一步安裝。如果沒有mysql環境,所以安裝的時候可以選擇sqlite數據庫。
在這裏插入圖片描述
管理員修改資料處上傳頭像
在這裏插入圖片描述
POC
https://github.com/thezdi/PoC/blob/master/Drupal/drupal_xss_rce.zip
②也可以採用該cve目錄下的blog-ZDI-CAN-7232-cat.jpg
在這裏插入圖片描述
上傳頭像+保存之後。查看一下上傳的圖片的地址
Drupal的默認文件保存地址是/site/default/files/pictures/xxx-xxx/[圖片名字]
在這裏插入圖片描述
訪問 http://127.0.0.1:8080/admin/config/media/file-system,在 Temporary directory 處輸入之前上傳的圖片路徑,示例爲 phar://./sites/default/files/pictures/2020-06/blog-ZDI-CAN-7232-cat.jpg
在這裏插入圖片描述
保存後將觸發該漏洞,觸發成功。這裏列舉出了/etc/passwd,證明是可以執行命令的
在這裏插入圖片描述
分析了一下poc,好像是通過反序列化對該命令進行的執行。
通過管理頁面存在的操作函數參數可控,把參數設置爲 phar://上傳文件名 即可導致命令執行。利用這種方法可以在不使用unserialize()函數的情況下觸發PHP反序列化漏洞。漏洞觸發是利用Phar:// 僞協議讀取phar文件時,會反序列化meta-data儲存的信息。

我們可以嘗試替換一下,比如ps -aux,此時是7個字節數,但是要記得把s對應的字節數目改成7
在這裏插入圖片描述
 
GOT IT!

 
******************************************************
小實驗小結,具體測試利用方式需根據具體實踐場景~

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