1、數字型注入
當輸入的引數為整形時,如果存在注入漏洞,可以認為是數字型注入。
測試步驟:
(1) 加單引號,url:www.text.com/text.php?id=3』
對應的sql:select * from table where id=3』 這時sql語句出錯,程式無法正常從資料庫中查詢出資料,就會丟擲異常;
(2) 加and 1=1 ,url:www.text.com/text.php?id=3 and 1=1
對應的sql:select * from table where id=3』 and 1=1 語句執行正常,與原始頁面如任何差異;
(3) 加and 1=2,url:www.text.com/text.php?id=3 and 1=2
對應的sql:select * from table where id=3 and 1=2 語句可以正常執行,但是無法查詢出結果,所以返回資料與原始網頁存在差異
如果滿足以上三點,則可以判斷該url存在數字型注入。
2、字元型注入
當輸入的引數為字串時,稱為字元型。字元型和數字型最大的乙個區別在於,數字型不需要單引號來閉合,而字串一般需要通過單引號來閉合的。
例如數字型語句:select * from table where id =3
則字元型如下:select * from table where name=』admin』
因此,在構造payload時通過閉合單引號可以成功執行語句:
測試步驟:
(1) 加單引號:select * from table where name=』admin』』
由於加單引號後變成三個單引號,則無法執行,程式會報錯;
(2) 加 』and 1=1 此時sql 語句為:select * from table where name=』admin』 and 1=1』 ,也無法進行注入,還需要通過注釋符號將其繞過;
mysql 有三種常用注釋符:
-- 注意,這種注釋符後邊有乙個空格
# 通過#進行注釋
/* */ 注釋掉符號內的內容
因此,構造語句為:select * from table where name =』admin』 and 1=1—』 可成功執行返回結果正確;
(3) 加and 1=2— 此時sql語句為:select * from table where name=』admin』 and 1=2 –』則會報錯
如果滿足以上三點,可以判斷該url為字元型注入。
判斷注入型別 字元型注入
當輸入的引數為字串是,並且存在注入,可稱為字元型注入,字元型和數值型的區別在於數值不需要單引號閉合,而字元型都需要單引號閉合。例如 數值型 select from news where id 1 則這字元型 select from news where title abcd 以上可以看出,在構造pa...
判斷sql注入漏洞的型別
通常 sql 注入漏洞分為 2 種型別 其實所有的型別都是根據資料庫本身表的型別所產生的,在我們建立表的時候會發現其後總有個資料型別的限制,而不同的資料庫又有不同的資料型別,但是無論怎麼分常用的查詢資料型別總是以數字與字元來區分的,所以就會產生注入點為何種型別。5.2.1 數字型判斷 當輸入的參 x...
SQL注入 判斷注入
web應用程式對使用者輸入的資料校驗處理不嚴或者根本沒有校驗,致使使用者可以拼接執行sql命令。可能導致資料洩露或資料破壞,缺乏可審計性,甚至導致完全接管主機。sql注入是將使用者輸入的資料當作了sql語句放入了資料庫執行。xss是將使用者輸入的資料當作了html語句放到了頁面上執行。order b...