MySQL曝中間人攻擊Riddle漏洞,可致用戶名密碼泄露
針對MySQL 5.5和5.6版本的Riddle漏洞會經(jīng)由中間人攻擊泄露用戶名密碼信息。請盡快更新到5.7版本。
Riddle漏洞存在于DBMS Oracle MySQL中,攻擊者可以利用漏洞和中間人身份竊取用戶名和密碼。
| “Riddle是一個(gè)在Oracle MySQL 5.5和5.6客戶端數(shù)據(jù)庫中發(fā)現(xiàn)的高危安全漏洞。允許攻擊者在中間人位置使用Riddle漏洞破壞MySQL客戶端和服務(wù)器之間的SSL配置連接。”漏洞描述寫道。“此漏洞是一個(gè)非常危險(xiǎn)的漏洞,因?yàn)槭紫人鼤绊慚ySQL – 非常流行的SQL數(shù)據(jù)庫 – 其次會影響SSL連接,根據(jù)SSL的定義,它理應(yīng)是安全的。” |
Riddle漏洞的編號為CVE-2017-3305,當(dāng)MySQL 5.5和5.6向服務(wù)器發(fā)送數(shù)據(jù),包括用戶名密碼時(shí),攻擊者可以捕獲它們。
針對5.5.49、5.6.30版本的安全更新并沒有完全修復(fù)漏洞。專家注意到,5.7版本之后以及MariaDB系統(tǒng)沒有受到漏洞影響。
安全研究員Pali Rohár稱,導(dǎo)致Riddle漏洞的原因是之前存在于MySQL數(shù)據(jù)庫中的BACKRONYM漏洞沒有被修復(fù)。Backronym漏洞能在中間人攻擊時(shí)用來泄露密碼,即使流量經(jīng)過加密。
“針對穩(wěn)定版本的MySQL 5.5.49和5.6.30的安全更新中添加了在驗(yàn)證過程完成后對安全參數(shù)的驗(yàn)證。”“由于動(dòng)作是驗(yàn)證完成后做出的,因此利用Riddle進(jìn)行中間攻擊再與SSL降級配合,攻擊者就可以竊取登錄數(shù)據(jù)進(jìn)行身份驗(yàn)證并登錄到MySQL服務(wù)器,“Rohár寫道。
“有趣的是,當(dāng)MySQL服務(wù)器拒絕驗(yàn)證用戶時(shí),MySQL客戶端不會報(bào)告任何與SSL相關(guān)的錯(cuò)誤,而是會報(bào)告服務(wù)器發(fā)送的未加密的錯(cuò)誤消息。而這些錯(cuò)誤消息由中間人攻擊者控制的。”
專家建議將客戶端軟件更新為MySQL 5.7或MariaDB,因?yàn)檫@些應(yīng)用程序的安全更新是能夠正常工作的。
PoC
作者給出了用Perl寫的PoC腳本。它會在本地3307端口開啟riddle,MySQL服務(wù)器運(yùn)行在localhost:3306。
在中間人服務(wù)器運(yùn)行riddle:
- $ perl riddle.pl
將MySQL客戶端與riddle連接:
- $ mysql --ssl-mode=REQUIRED -h 127.0.0.1 -P 3307 -u user -p password
如果你提供了正確的用戶名密碼,riddle就會連接到服務(wù)器,執(zhí)行SQL語句并輸出:
- SELECT COUNT(*) FROM information_schema.TABLES --> 121
MySQL客戶端會收到一條由riddle發(fā)送的錯(cuò)誤信息:
- ERROR 1045 (28000): Access denied: MITM attack
Oracle修復(fù)漏洞不及時(shí)
Riddle漏洞在二月份被發(fā)現(xiàn),但是這個(gè)漏洞仍然能夠影響到Oracle MySql軟件。
“如果你不是Oracle客戶的話,向他們報(bào)告漏洞是沒有用的(即使是與安全相關(guān)的漏洞)。他們可以完全忽視任何報(bào)告,如果沒人知道的話,他們會很高興,因此不用修復(fù)漏洞了,“Rohár解釋說。
| “立即公開披露似乎是對用戶最負(fù)責(zé)的解決方案,這是保護(hù)用戶的唯一方法,能立即讓他們知道應(yīng)該做什么。” |
























