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