在http請求中sql注入點通常存在在get,post請求中。但是有幾個地方也不能忽略,如:

cookie:識別使用者的唯一標識

主機頭:指定請求資源的internet主機和埠號

引用站點頭(host):指定獲取當前請求的資源

使用者代理頭(user-agent):確定使用者使用的web瀏覽器。

服務端有很大可能將這些資料存入資料庫中。攻擊者可以將這些資料篡改為攻擊語句。是伺服器存入資料庫。

1.” ’ ”(單引號)

get請求我們通常在後面新增一個“ ‘ “來判斷其存不存在sql注入

例如:

http://

127。0。0。1/sql-labs/Less

-1/?id=1

sql注入筆記一——尋找sql注入點

伺服器報錯,並把錯誤資訊返回到網頁上面。根據錯誤資訊,判斷這裡大機率存在注入點。

2.and

構造更多的引數來判斷。

http://

127。0。0。1/sql-labs/Less

-1/?id=1

‘and‘1’=‘1 (正常頁面)

sql注入筆記一——尋找sql注入點

http://

127。0。0。1/sql-labs/Less

-1/?id=1

‘and’1‘=’2 (非正常頁面)

sql注入筆記一——尋找sql注入點

透過兩個連線返回的頁面不同,說明服務端以執行我們構造的sql語句。這裡存在sql注入。

3.or

http://127。0。0。1/sql-labs/Less-1/?id=1‘or’1‘=’1

sql注入筆記一——尋找sql注入點

http://127。0。0。1/sql-labs/Less-1/?id=2‘or’1‘=’1

sql注入筆記一——尋找sql注入點

兩個連線返回的頁面相同,說明or1=1永真條件在伺服器執行了。所以返回預設的第一個使用者資訊。

4.+- (運算子)

這裡需要注意區分數字型注入和字元型注入。

4.1 數字型注入

http://127。0。0。1/sql-labs/Less-2/?id=2

sql注入筆記一——尋找sql注入點

http://

127。0。0。1/sql-labs/Less

-2/?id=3-1

sql注入筆記一——尋找sql注入點

兩個連線返回同一個相同的頁面,說明3-1在伺服器執行了,所以返回id=2的頁面

4。2字元型注入

uname=ad‘ ’min&passwd=adm‘ ’in&submit=Submit

sql注入筆記一——尋找sql注入點

成功登陸說明服務端沒有對輸入 資料做限制,並且還允許字串拼接。存在sql注入可能