1. 程式人生 > >CVE-2018-7600 Drupal漏洞原理的簡單分析與復現

CVE-2018-7600 Drupal漏洞原理的簡單分析與復現

0x00元件背景

Drupal是使用PHP語言編寫的開源內容管理框架(CMF),它由內容管理系統(CMS)和PHP開發框架(Framework)共同構成。連續多年榮獲全球最佳CMS大獎,是基於PHP語言最著名的WEB應用程式。

0x01漏洞位置

這裡有個call_user_func_array

call_user_func_array函式是呼叫第一個引數的函式 傳入的引數數第二個引數陣列

官網解釋如下

只需要控制$callable為要執行的函式名然後$args是引數就ok

從上面的程式碼看出這兩個變數是從$elements[‘#lazy_builder’]中取得

elements是從使用者傳來的post來的 也就是說變數可控

直接注入陣列一把梭

在php中 post請求可以傳遞一個數組

0x02 漏洞復現

此處的assert是

可以用來代替eval

die是為了輸出pwn之後不再輸出其他亂七八糟的東西。

當die的引數是個字串的時候會輸出這個字串然後退出程式

0x03 修復建議

直接從網站根目錄刪除網站程式並且清空資料庫 然後解除安裝php直譯器以及web中介軟體 然後解除安裝mysql 以上操作結束後刪除伺服器根目錄 然後覆蓋刪除硬碟上的所有資料

dd if = /dev/urandom of = /dev/硬碟名