當前位置:
首頁 > 新聞 > CVE-2018-6376:Joomla!二階SQL注入漏洞

CVE-2018-6376:Joomla!二階SQL注入漏洞

Joomla!是一套全球知名的內容管理系統。去年,在500000行代碼中發現一個LDAP注入漏洞。攻擊者利用LDAP注入漏洞可以完全控制依賴LADP進行認證的版本號小於 v3.7.5的Joomla! 版本。

研究人員最近又發現一個Joomla!核心的漏洞,影響3.8.4之前的所有版本。RIPS發現一個二階SQL注入,攻擊者可以利用二階SQL注入來進行許可權提升,攻擊者可以獲取完全的管理許可權。

註:RIPS是一款對PHP源碼進行風險掃描的工具。

受影響版本

受影響的Joomla! 版本為3.7.0到3.8.3版本。

攻擊者需要用Joomla!後台中manager帳號進行認證。該用戶組在Joomla!中默認的許可權是低於Administrator 和Super Users用戶組的。

影響

攻擊者利用該漏洞可以從資料庫中讀取任意的數據,這些數據隨後可以用來擴展攻擊者低許可權。通過執行PHP代碼,攻擊者可以獲取Joomla!的完全管理許可權。

自動檢測

RIPS經過深度代碼分析,發現兩個高危的SLQ注入漏洞。

在漏洞中,用戶控制的輸入用來構造沒有任何處理的SQL查詢。

RIPS引擎中的靜態代碼分析演算法成功地檢測到了用戶輸入中的危險部分。還發現Joomla!資料庫抽象層的一個方法是安全相關的,該方法吧執行資料庫查詢的SQL代碼聯繫在一起。攻擊者可以注入SQL代碼來修改資料庫查詢來竊取隱私數據。

技術分析:二階邏輯SQL盲注入

SQL注入定位在文件administrator/templates/hathor/postinstall/hathormessage.php中。下面的代碼總結了該漏洞:

每當dashboard載入時,組件會調用函數hathormessage_postinstall_condition() 來post安裝消息。該函數中,變數$adminstyle的內容會與第10行中構造的SQL查詢中的WHERE部分相聯繫。如果攻擊者可以通知參數admin_style的內容,就可以注入任意SQL代碼到14行中的查詢中。

第4行接收到的參數admin_style含有用戶用來配置後台模板的ID,用戶可以在profile設定中改變該參數。通過攔截保存的請求中的用戶參數並改變admin_style的值來進行快速驗證,表明數據會直接保存到資料庫中而不需要進行額外的檢查或處理。攻擊者就可以注入任意內容到該參數,並用於之後的SQL查詢中。因為payload首先會保存到資料庫,然後用於查詢,所以這種SQL注入就叫做二階漏洞。查詢的結果是不會直接展示在web頁上,這樣攻擊者需要用基於錯誤或者時間的注入技術來進行利用。

下圖說明了SQL查詢中XPath錯誤消息如何用於讀取當前登錄管理員的session ID。

總結

安全漏洞是無處不在的,研究人員發現一個影響Joomla! 3.8.4以前版本的SQL注入漏洞。該漏洞可以用RIPS靜態代碼分析器進行識別,本文證明了二階SQL盲注的根源和RIPS如何在複雜的PHP項目中找出隱藏的安全問題。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 嘶吼RoarTalk 的精彩文章:

新型銀行惡意軟體變種KillDisk來襲,專攻拉美金融機構
Mirai又出新變種,攻擊力史無前例

TAG:嘶吼RoarTalk |