安全顧問揭露MySQL含有可竊取用戶檔案的設計漏洞、LOAD DATA敘述,如果在客戶端指定了LOCAL關鍵字

安全顧問揭露MySQL含有可竊取用戶檔案的設計漏洞

安全顧問Willem de Groot揭露MySQL資料庫含有一設定漏洞,將允許惡意的MySQL伺服器存取位於MySQL客戶端的任何檔案。

Groot先前便指出,用來管理MySQL及PostgreSQL資料庫的PHP工具Adminer可竊取任何檔案,諸如資料庫客戶端所存放的Magento或Wordpress憑證,幾天之後Groot才發現,原來癥結在於MySQL的協定漏洞。

MySQL客戶端有個LOAD DATA敘述,如果在客戶端指定了LOCAL關鍵字,即會允許伺服器端載入客戶端的檔案,而MySQL團隊也知道這可能會帶來安全問題,還在操作手冊中提出了警告。

根據手冊上的說明,將檔案從客戶端轉移到伺服器端是由MySQL伺服器所發起的,理論上使用者可建置一個客製化的伺服器,要求客戶端程式轉移伺服器所指定的檔案而非客戶端於LOAD DATA敘述中所宣稱的檔案名稱,此一修改過的伺服器能夠存取任何客戶端用戶可讀取的檔案。

因此,MySQL團隊建議客戶端不應連至任何不可靠的伺服器上。

Groot則說,MySQL團隊所說的理論已然成為事實,因為Github上就存放了一個惡意的MySQL伺服器,能夠用來自這些被駭的網站上汲取密碼,或是竊取SSH金鑰與加密貨幣錢包。

儘管該伺服器還必須知道所欲存取之客戶端檔案的完整路徑,但只要先提出/proc/self/environ的請求,就能得知客戶端的文件夾架構,提高攻擊的成功機率。

Groot提醒,即使諸如Golang、Python與PHP-PDO等許多的客戶端或函式庫都已關閉了該功能或內建針對該功能的保護機制,但並非全部,Adminer即是其中一例,也不會是最後一個例子。

🍎たったひとつの真実見抜く、見た目は大人、頭脳は子供、その名は名馬鹿ヒカル!🍏