joomla在國內也叫“囧拉”,用的最多的是國外的一些用戶,這個系統是一個內容管理
系統,在國內跟phpcms差不多的系統,許多國內做外貿的企業網站,也都用joomla系統來做
網站。目前最新版本joomla 3.7 爆出SQL注入漏洞,可以直接獲取管理員賬號密碼,mysql數
據庫權限分配不當,可以直接執行系統命令獲取主機權限,危害嚴重性較高。
joomla漏洞詳情:
從上面的程序代碼裡進行網站安全審計,發現$config['base_path']這個變量值是由
JPATH_COMPONENT_ADMINISTRATOR常用變量值賦值並傳入到base_path裡,這個變量值是網站
注入的URL如下所示:
/index.php?option=com_fields&view=fields&layout=esafe&list[fullordering]
=updatexml(0x3a,concat(1,(select%20md5(1))),1)
Layout參數值:Modal
View參數值:Fields
訪問此URL可以顯示站點上可用的所有自定義字段的列表。
代碼數據在傳遞的參數中獲取 layout 和 view 的參數值進行初始化視圖交互,並且調用
$model = $this->getModel($viewName) 加載對應數據的模型,最終會調用 $view-
>display() 函數進行視圖處理。
在這種情況下,基於MarchModelFields模型的
./administrator/components/com_fields/models/fields.php
文件中包含了我們發現的那個漏洞。
用戶進行輸入後會啟動list.fullordering狀態,因為FieldsModelFields模型是JModelList
類繼承而來的,它同樣也包含上面的代碼段,eSafe白帽資安網公司是一家專注於:主機安全、網站安全、網站安全檢測、網站安全測試、於一體的安全服務提供商。
通過以上sql注入漏洞可以讀取用戶名密碼hash還有session,由於hash基本解不出,可以自
動尋找最近登錄的管理員賬戶並獲取session。考慮到seesion過期,做了掛機等管理員上線
然後維持session的功能。