現在的WEB程序基本都有對SQL注入的全局過濾,像PHP開啟了GPC或者在全局文件common.php上使用addslashes()函數對接收的參數進行過濾,尤其是單引號。遇到這種情況我們就需要找一些編碼解碼的函數來繞過全局防護,這篇文章講urldecode()的情況
原文出處:http://www.cnbraid.com/2015/sql1.html
-------------------
如果你認同支持我們每日分享的文章的話,請幫我們按個讚並且點擊追蹤「搶先看」,這樣就可以快速獲得最新消息囉!
您的分享及點讚,是我們最大的動力來源。
https://www.facebook.com/LonelyPoPo/
波波觀點:UrlDecode 繞過的核心是正規化順序
SQL 注入防護常見錯誤之一,是在錯誤的時間點做輸入檢查。若系統先用黑名單判斷,再由框架、Web 伺服器或應用程式進行 UrlDecode,攻擊者就可能利用編碼差異繞過規則。這類案例很適合用來說明「正規化後再驗證」的重要性。
審計檢查方向
- 追蹤參數從 HTTP 請求、框架解析、過濾函式到 SQL 組字串的完整流程。
- 確認 UrlDecode、Base64Decode、字元集轉換與反斜線處理的先後順序。
- 找出全局防護、黑名單、addslashes 與手寫過濾規則的邊界缺陷。
- 優先改用參數化查詢與 ORM 安全 API,而不是依賴字串替換。
修補建議
防禦 SQL 注入時,輸入正規化、型別驗證與參數化查詢要一起做。對 ID、分頁、排序、欄位名稱等參數,應建立白名單與型別限制;對複雜查詢,應避免把未經驗證的字串直接拼接進 SQL。
後續可把這篇文章與 Base64Decode 篇整理成 SQL 注入繞過系列,並加入 vulnerable code、patched code 與測試案例。這樣更適合作為程式碼審計專題的核心內容。











分析.png)



