盲注分為兩類:
- 布林盲注:字面意思,只有對和錯兩種,執行注入的sql語句後,頁面看不到別的內容,只能看到頁面的兩種變化,一種是執行沒出問題的頁面,一種是執行錯誤的頁面
- 時間盲注:時間盲注在執行注入的sql語句後,無論有沒有問題,他的頁面始終不變
這裡介紹幾個函式:
- Length()函式用來識別括號內字串的長度
- ascii()函式可以將單個字串轉換為ASCII碼
- substr()這是一個分割函式,它需要三個引數substr(“需要分割的資料”,“從哪裡開始分割”, “分多少位”)
- if()函式,基本在很多的程式語言都有接觸到。在這裡它也需要三個引數:if(“條件”,“條件為True, 執行這裡”,“條件為False,執行這裡”)
- sleep()函式,睡眠的意思,能控制你睡眠多少秒
手工注入基本步驟:先測試出是哪種盲注型別,因為頁面不會回顯結果,所以必須都是靠猜,可以轉換成ascll碼,在sql裡面比大小確定字母,判斷頁面的變化
- 注入點測試
- 猜資料庫名長度
- 猜資料庫名(ASCII)
- 猜表名長
- 猜表名
- 猜欄位名長
- 猜欄位名
- 猜資料長
- 猜資料
來一段注入程式碼以供參考:?id=1' and (ascii(substr((select column_name from information_schema.columns where table_name='users' limit 1,1),1,1)))<80--+