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

MySQL 查詢認證繞過漏洞 (CVE-2006-XXXX):空字元導致部分查詢錯誤認證

     編輯:MySQL 資料庫相關知識

MySQL 3.x/4.x/5.x (含 5.0.18) 存在查詢日誌處理缺陷,攻擊者可利用空字元 (NULL byte) 繞過認證。Secunia Advisory SA19034。

漏洞詳情

  • 類型:異常處理錯誤 / 認證繞過
  • 攻擊向量:本地攻擊 (需能發送查詢)
  • 影響版本:MySQL 3.x、4.x、5.x (確認 5.0.18)
  • 發布日期:2006-02-27

攻擊原理

查詢日誌處理邏輯對空字元 (\0) 處理不當,導致包含空字元的查詢字串被錯誤截斷/解析,使部分查詢片段在未授權情況下被執行或通過認證檢查。

概念驗證 (PoC)

-- PHP 範例
mysql_query("/*" . chr(0) . "*/ SELECT * FROM sensitive_table");
-- 空字元導致註解結束異常,後續查詢可能被誤判為合法

修補建議

  1. 升級至修補版本:MySQL 5.0.19+ / 5.1.x / 4.1.x 修補版
  2. 網路層限制:僅允許受信任主機/IP 連接 3306 埠
  3. 應用層防禦:
    • 參數化查詢 (Prepared Statement) 防注入
    • 輸入驗證:拒絕含空字元 (\0) 的參數
    • 最小權限資料庫帳號
  4. 監控審計:啟用 General Log / Audit Plugin,異常查詢告警

現代視角

  • 此漏洞屬早期版本 (2006),MySQL 5.7/8.0 已修復
  • 同類問題:CVE-2012-2122 (認證繞過、特定編譯選項)、CVE-2016-6662 (配置檔竄改提權)
  • 防禦核心:最小權限、參數化查詢、網路隔離、及時修補、審計日誌

結語

空字元注入是經典的字串處理邊界漏洞。資料庫層面修補固然必要,但應用層參數化查詢 + 輸入驗證 + 網路最小暴露面才是根本防線。定期掃描 CVE、訂閱安全公告、建立修補流程是資料庫安全治理常態。

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