MySQL 的協定在設計上有瑕疵,導致了一些安全性問題。

這篇算是個翻譯兼摘要文,
今天看到原文覺得有趣就追了一下,
原文在此:MySQL client allows MySQL server to request any local file


TL;DR

MySQL 協定上的瑕疵
預設讓 Server 可以讀取 Client 上有讀取權限的所有資料
導致有心人士可以寫一個加了點料的 MySQL server
當你連上它的時候你的東西就被它看光光了

目前據報 mysql-client 8.0 預設沒這問題,因為 LOAD DATA LOCAL 預設是 Disable 的。但 5.5, 5.6, 5.7 預設都是 Enable 的。

有些 ORM framework 預設是有幫忙 Disable LOAD DATA LOCAL 的,但不是每個都有,開發者要注意一下。


玩法

  1. 攻擊執行了 Adminer 的網站

  2. Honeypot

    • 架個公開的 Evil MySQL Server
    • 嘗試讀取上鉤的攻擊者的檔案
      • 如果他用來連線的 mysql-client 也沒把 LOAD DATA LOCAL 關掉就會中招。

相關討論

可能會有後續發展可以追


References


Share


Donation

如果覺得這篇文章對你有幫助, 除了留言讓我知道外, 或許也可以考慮請我喝杯咖啡, 不論金額多寡我都會非常感激且能鼓勵我繼續寫出對你有幫助的文章。

If this blog post happens to be helpful to you, besides of leaving a reply, you may consider buy me a cup of coffee to support me. It would help me write more articles helpful to you in the future and I would really appreciate it.


Related Posts