1. 程式人生 > 其它 >sqli-labs-Less1

sqli-labs-Less1

在學習之前,我們要知道,什麼是 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 會根據指定的列進行排序,若沒有這個列,語句執行報錯顯示沒有這個欄位,所以我們可以通過報錯來判斷擁有幾個列