聯(lián)系人:李女士
座機(jī):010-59433750
手機(jī):15313878231
郵 箱:angelals@secspace.com
地 址:北京市海淀區(qū)金碼大廈B座2328
【漏洞預(yù)警】Joomla!3.7.0 Core SQL注入漏洞(更新漏洞環(huán)境)
前言
Joomla!是世界上最受歡迎的內(nèi)容管理系統(tǒng)(CMS)解決方案之一。它可以讓用戶自定義構(gòu)建網(wǎng)站實(shí)現(xiàn)強(qiáng)大的在線應(yīng)用程序。據(jù)不完全統(tǒng)計互聯(lián)網(wǎng)上超過3%的網(wǎng)站運(yùn)行Joomla!,同時它占有全球9%以上的CMS市場份額。
截止至2016年11月,Joomla!的總下載量超過7800萬次。目前Joomla!官方還提供了超過7800個擴(kuò)展插件(含免費(fèi)、收費(fèi)插件)及其他的可用資源可供下載。
漏洞描述
漏洞等級:嚴(yán)重
漏洞類型:sql 注入
利用難度:簡單
利用方式:遠(yuǎn)程
影響版本:Joomla! 3.7.0 Core
漏洞簡述:這個漏洞出現(xiàn)在3.7.0新引入的一個組件“com_fields”,這個組件任何人都可以訪問,無需登陸驗(yàn)證。由于對請求數(shù)據(jù)過濾不嚴(yán)導(dǎo)致sql 注入,sql注入對導(dǎo)致數(shù)據(jù)庫中的敏感信息泄漏,例如用戶的密碼hash以及登陸后的用戶的session(如果是獲取到登陸后管理員的session,那么整個網(wǎng)站的后臺系統(tǒng)可能被控制)。
漏洞細(xì)節(jié)
“com_fields ”組件從相同名稱的管理端組件繼承了一些視圖,這樣可以縮減大量相同功能的代碼,提高代碼的復(fù)用性。
從上面的代碼片段可以看到,$config['base_path']變量的值是JPATH_COMPONENT_ADMINISTRATOR常量傳過去的,這個常量值代表管理員組件目錄的本地路徑,這樣做會造成 Joomla! 從這個路徑獲取視圖views和模塊models,要成功的操作需要構(gòu)造相關(guān)參數(shù)和值,view 參數(shù)的值是fields ,layout 參數(shù)的值是modal。那么構(gòu)造的URL如下:
1 |
/index.php?option=com_fields&view=fields&layout=modal |
訪問此URL可以顯示這個站點(diǎn)所有自定義字段的列表。
需要注意的是這是唯一的一個管理員視圖的組件字段(我們前面說到的$config['base_path']變量這塊)。這種情況下,我們可以直接從管理員模型獲取數(shù)據(jù)。具體的漏洞位于:
.MarchModelFields 模型下的 ./administrator/components/com_fields/models/fields.php文件中。
最終我們定位到出問題的方法getListQuery
如果不熟悉Joomla!執(zhí)行SQL查詢,$query-> order()真的只是一個方法,其輸入將被連接到一個查詢的ORDER BY語句,這里就是我們要做的最后一件事,將未經(jīng)檢查的用戶輸入帶入到這里,看看會不會有驚喜
用戶輸入傳入到list.fullordering,因?yàn)镕ieldsModelFields模型從繼承JModelList類,它同樣也包含上面的代碼段。你可能會注意到它對內(nèi)容做了一些驗(yàn)證,然后相應(yīng)地設(shè)置list.direction和list.ordering,但是list.fullordering呢?
在switch語句之后,不管它是否生成了一個有效的list.direction或者list.ordering,我們可以利用這行指令通過我們輸入的內(nèi)容來設(shè)置我們想要的值。
所以為了利用這個漏洞,攻擊者必須做的是為URL添加適當(dāng)?shù)膮?shù),以便注入到SQL查詢。
驗(yàn)證截圖
PoC
暫不公開
修復(fù)建議
升級最新版完整安裝包以及升級補(bǔ)丁包
https://downloads.joomla.org/cms/joomla3/3-7-1
漏洞環(huán)境
感謝開源社區(qū)力量
漏洞靶場環(huán)境 由phithon維護(hù)
Vulhub是一個面向大眾的開源漏洞靶場,無需docker知識,簡單執(zhí)行兩條命令即可編譯、運(yùn)行一個完整的漏洞靶場鏡像。
https://github.com/phith0n/vulhub/tree/master/joomla/CVE-2017-8917
參考
https://blog.sucuri.net/2017/05/sql-injection-vulnerability-joomla-3-7.html
https://www.joomla.org/announcements/release-news/5705-joomla-3-7-1-release.html
https://downloads.joomla.org/cms/joomla3/3-7-1
本文轉(zhuǎn)自安全客,原文鏈接:https://blog.sucuri.net/2017/05/sql-injection-vulnerability-joomla-3-7.html