首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL COM_CHANGE_USER 密碼認證機制漏洞 (CVE-2002-1374) 分析

     編輯:MySQL 資料庫相關知識

漏洞基本資訊

項目內容
發布日期2003-01-05
嚴重等級高
威脅類型認證繞過 / 帳號劫持
漏洞類型設計缺陷
攻擊向量網路服務端
BUGTRAQ ID6373
CVE 編號CAN-2002-1374

受影響版本

MySQL 3.22.26 ~ 3.23.53、MySQL 4.0.0 ~ 4.0.5a 幾乎所有早期版本。詳細清單見原文。

漏洞原理

MySQL 客戶端可發送 COM_CHANGE_USER 命令切換身份。伺服器驗證時,**僅比對客戶端提交的密碼雜湊值首字元** (第一個位元組)。因合法密碼字元集僅 32 個字元,攻擊者最多嘗試 32 次即可猜中首字元,進而以任意已知帳號通過認證。

攻擊流程

  1. 攻擊者已獲得有效帳號 (或知曉目標帳號名稱)。
  2. 發起連線並發送 COM_CHANGE_USER 封包,指定目標帳號。
  3. 針對密碼雜湊首字元進行 32 次窮舉嘗試。
  4. 成功匹配首字元後,伺服器認證通過,攻擊者取得目標帳號權限。

影響與風險

  • 任意合法使用者可劫持其他使用者帳號 (含 root)。
  • 繞過完整密碼驗證機制,直接獲得完整資料庫操作權限。
  • 無需知道完整密碼,僅需暴力破解 1 位元組 (32 次嘗試)。

修補建議

  1. 升級至修補版本: MySQL 3.23.54+、4.0.6+、4.1.0+ 已修正此漏洞。
  2. 網路層防護: 防火牆限制 3306 連線來源,僅允許應用伺服器 IP。
  3. 帳號管理: 移除不必要帳號,root 僅允許本機連線 (root@localhost)。
  4. 監控審計: 記錄異常 COM_CHANGE_USER 請求與大量認證失敗事件。

參考資源

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved