當輸入的引數為字串是,並且存在注入,可稱為字元型注入,字元型和數值型的區別在於數值不需要單引號閉合,而字元型都需要單引號閉合。
例如:數值型:
select * from news where id=1;
則這字元型:
select * from news where title='abcd';
以上可以看出,在構造payload的時候必須通過閉合單引號後,讓sql語句從單引號中逃出來,才可以成功執行語句。
測試步驟:
1.加單引號:
select * from news where title='abcd'';
由於單引號加了乙個進去變成三個單引號,則無法正常執行,資料庫會報錯。
2.繼續測試:
加』 and 1=1
select * from news where title='abcd' and 1=1';
以上語句也無法進行正常查詢,要用注釋符號將程式本身的單引號注釋掉。
3.加』 and 1=1#
select * from news where title='abcd' and 1=1#'
此時資料庫會正常執行語句,不會報錯,可以繼續將and 1=1 換為 and 1=2測試
4.加』 and 1=2#
selct * from news where title='abcd' and 1=2#';
因為1=2不成立,程式會報錯,由此可判斷出存在字元型注入。
mysql中注釋符有三種:#的url編碼為%23 – 注意–後面有乙個空格 /**/內聯注釋
判斷注入型別
1 數字型注入 當輸入的引數為整形時,如果存在注入漏洞,可以認為是數字型注入。測試步驟 1 加單引號,url www.text.com text.php?id 3 對應的sql select from table where id 3 這時sql語句出錯,程式無法正常從資料庫中查詢出資料,就會丟擲異...
SQL注入 字元型注入(GET)
實驗準備 皮卡丘靶場 sql injection 數值型注入 get 實驗步驟 當輸入乙個資料庫裡存在的使用者名稱時候,會出現相關郵箱和id 當輸入乙個不存在的字串時,沒有任何資訊 檢視其url,發現請求實在url中提交的,是乙個get請求 猜想資料庫查詢語句 select id,email fro...
SQL字元型注入
sql字元型注入 多點幾次submit,它會出現這麼個玩意 都說了是字元型,直接上 whalwl 報錯 whalwl 注釋單引號,不報錯 whalwl order by 3 查詢字段數,order by 4報錯,order by 3剛好不報錯,故有3列 查詢有那些資料庫 這裡注意兩點 1.為什麼要寫...