歡迎光臨
我們一直在努力

淺析白盒審計中的字符編碼及SQL注入

#Web 滲透與漏洞研究#程式碼審計與漏洞分析

今天分享一篇在網站字符編碼"GBK"、"UTF-8"中可能遇到的SQL Injection問題,透過MYSQL中的寬字符注入與mysql_real_escape_string如何解決 ?

原文出處:https://www.leavesongs.com/PENETRATION/mutibyte-sql-inject.html

波波觀點:編碼問題會破壞安全假設

字元編碼與 SQL Injection 的關係,常見於應用程式、資料庫連線與資料庫本身對字元的理解不一致。若過濾函式在一種編碼下判斷安全,但資料庫用另一種方式解析,就可能產生繞過。

審計檢查

  • 確認頁面、應用程式、資料庫連線與資料表使用一致編碼。
  • 檢查是否依賴手寫 escaping,而不是 prepared statement。
  • 注意歷史專案中的 GBK、Big5、latin1 與錯誤 charset 設定。
  • 確認輸入過濾與資料庫查詢之間沒有二次解碼或轉碼。

防禦建議

最穩定的做法是統一使用 UTF-8/utf8mb4、正確設定資料庫連線編碼,並使用參數化查詢。若必須維護舊系統,應把編碼設定納入安全檢查表,而不是只看程式碼中的過濾函式。

在台灣或多語系網站中,歷史資料可能混有 Big5、UTF-8 與不同來源的內容。做安全測試與資料搬遷時,應特別注意轉碼錯誤是否造成資料截斷、驗證繞過或搜尋索引異常。

站內延伸閱讀

贊(0) 贊助
未經允許不得轉載:波波的寂寞世界 » 淺析白盒審計中的字符編碼及SQL注入

波波的寂寞世界

Facebook聯繫我們

覺得文章有幫助,歡迎贊助支持本站

感謝你的支持,我會持續整理資安筆記、實務經驗與有價值的技術內容。

贊助本站