phpMyAdmin被曝存在嚴重CSRF漏洞可對數據庫造成破壞
發布時間: 2018-01-09
近期,印度安全工程師Ashutosh Barot發現phpMyAdmin存在嚴重CSRF漏洞(跨站請求偽造),可以通過技巧欺騙管理員去點擊構造鏈接,觸發對基于phpMyAdmin的MySQL數據庫的遠程操作,實現對數據庫的破壞攻擊行為。
漏洞影響
該漏洞對phpMyAdmin 4.7.x系列中4.7.7之前的所有版本造成影響,目前,phpMyAdmin官方已發布漏洞修補聲明,聲明中提到“該漏洞利用方式為,通過欺騙當前登錄用戶點擊某個惡意構造鏈接,之后可能導致對MySQL數據庫的記錄數據等信息的刪除(dropping/truncating tables)”。
漏洞分析
CSRF是OWASP Top 10的嚴重漏洞之一, phpMyAdmin發起刪除數據表等操作的POST請求后,會執行一個Get請求,為防止CSRF攻擊Get會受到安全防護。該案例中,可以通過如瀏覽器書簽等URL鏈接來發起POST請求,攻擊者可以藉此構造特殊惡意鏈接按鈕,欺騙管理員點擊之后,達到操作數據庫目的。雖然有這種可能,但對于遠程攻擊者來說,很難收集到可以構造惡意URL的相關信息。
基于此,我發現可以利用Burp的請求更改功能,把phpMyAdmin的POST請求轉換為GET請求,之后,即使身份token過期或被清除,一樣可以把它從URL中直接執行。利用這種方法,我可以添加一個wordpress的管理員用戶。為了實現目的,攻擊者則需要知道cPanel的會話id和數據庫名稱,其它如wp_users的表名則非常容易進行猜解。
執行數據庫操作的構造URL可以被保存在瀏覽器歷史記錄中,如果用戶點擊insert和DROP等按鈕來執行查詢操作,該URL就需要包含數據庫名和表名等信息。由于這種構造URL鏈接可在瀏覽器歷史、安全事件管理日志(SIEM logs)、防火墻日志、ISP日志等地存儲,因此,該漏洞還可導致某種程度上的敏感信息泄露。
在用戶通過了phpMyAdmin的管理面板認證登錄后,即使關閉了phpMyAdmin,這種CSRF攻擊照樣可行。但如果想要成功利用該漏洞,實現遠程數據庫操作,需要與用戶有一個點擊鏈接的交互,因此,目前該漏洞的影響程度暫定為中級(Medium)。
POC視頻
視頻中,遠程攻擊者通過欺騙管理員點擊構造的惡意鏈接后,就能讓管理員毫不知情地刪除了整個數據庫。
phpMyAdmin通過數據庫管理功能能與WordPress、Joomla等建站系統結合,很多服務托管商也會使用phpMyAdmin后臺來管理交互客戶數據,基于此,phpMyAdmin已經發布了修復措施,希望相關受影響用戶及時修補漏洞,或下載更新版本。
上一篇: 傳統密碼已經消亡