sqli-labs-Less1
阿新 • • 發佈:2021-12-23
在學習之前,我們要知道,什麼是 SQL 注入?
一句話來說,攻擊者通過注入惡意的SQL命令,破壞SQL查詢語句的結構,從而達到執行惡意SQL語句的目的。
SQL注入漏洞的危害是很大的,常常會導致整個資料庫資訊洩露,SQL注入也是最常見的Web漏洞之一。
聯合查詢注入的基本思路
1.判斷是否存在注入點,是字元型注入還是數字型注入
2.order by 猜解 SQL 查詢語句中的欄位數
3.union select 確認顯示欄位的順序(哪一個欄位回顯內容)
4.獲取當前資料庫
5.獲取資料庫中的表名
6.獲取資料表中的列名(欄位名)
7.獲取欄位的資料(獲取到資料庫資訊,下載內容)
1.判斷注入是否存在注入點,是字元型,還是數字型。
使用
http://localhost/sqli-labs-master/Less-1/?id=1'
和http://localhost/sqli-labs-master/Less-1/?id=1a
來進行判斷
因為數字型注入的話,如果是
1a
的話會報錯
,字元型的話1a
是正常解析的。
判斷是否存在注入點,使用
'
和"
引號嘗試進行閉合破壞 SQl 語句
注意:這裡的 %27 是 url編碼,chrome 瀏覽器會自動對 url 進行編碼, %27 解碼後就是單引號
在輸入1'
閉合後,提示語法錯誤,存在注入點
2.猜解 SQL 查詢語句中的欄位數
由於是聯合查詢注入,
union select 聯合查詢語句的條件是需要和第一個 select 查詢語句的欄位數相同
所以需要猜解除第一個查詢語句中欄位的數量,使用order by
order by 會根據指定的列進行排序,若沒有這個列,語句執行報錯顯示沒有這個欄位,所以我們可以通過報錯來判斷擁有幾個列