今天分享一系列的代碼審計教學,透過代碼審計的方式可以完整地找到是否有Bug、漏洞存在,是非常重要的技能。
廢話不多說,直接跟著文章動手做吧!
【PHP代碼審計】 那些年我們一起挖掘SQL注入 - 1.什麼都沒過濾的入門情況
原文出處:http://www.cnbraid.com/2015/sql0.html
波波觀點:SQL Injection 入門要先看資料流
白盒審計 SQL Injection 時,不應只搜尋關鍵字,而要追蹤資料如何從 request、cookie、header 或檔案進入查詢語句。最基礎的情況是沒有任何過濾就拼接 SQL,但實務上更常見的是局部過濾、錯誤型別假設或在某些分支漏掉檢查。
審計步驟
- 找出所有資料庫查詢入口,標記使用者可控參數。
- 確認是否使用 prepared statement 或安全 ORM API。
- 檢查排序、欄位名、LIMIT、IN 條件等不容易參數化的位置。
- 確認錯誤訊息、日誌與資料庫權限是否會放大影響。
修補原則
修補 SQL Injection 優先使用參數化查詢,搭配白名單處理欄位名與排序方向。資料庫帳號也應最小權限化,即使應用程式出錯,也不要讓單一漏洞直接取得過大的資料庫操作能力。
寫審計筆記時,建議同時記錄「可控來源、危險查詢、觸發條件、影響資料、修補方式」五個欄位。這能讓文章從片段技巧變成可復用的審計方法。













