和第一課一樣全封,這一課同樣是我們?cè)趇d后面輸入數(shù)字,服務(wù)器會(huì)回復(fù)相應(yīng)的數(shù)據(jù)庫查詢:
嘗試注入:id=1' and 1=1
發(fā)現(xiàn)數(shù)據(jù)庫報(bào)錯(cuò)桃犬。這節(jié)課的名字叫做integer刹悴,所以在sql語句中的id可能是以整數(shù)形式輸入的。刪除掉單引號(hào)再嘗試:
存在注入攒暇,并且只要把第一課中的單引號(hào)去掉就可以直接使用第一課中的語句土匀。
注入腳本:https://github.com/SevenWen/SQLiLab/blob/master/Less-2.py
Less-3
與第二課相同,用單引號(hào)做嘗試:
查看語法錯(cuò)誤的提示扯饶,'1'') LIMIT 0,1 恒削。 我們注入了一個(gè)單引號(hào)池颈,所以1之后多了一個(gè)單引號(hào),而且之后還有一個(gè)括號(hào)钓丰。所以這個(gè)應(yīng)該是括號(hào)包裹著的單引號(hào):
$sql="SELECT * FROM users WHERE id=('$id') LIMIT 0,1";
所以注入就是將第一課的單引號(hào)后面加上半個(gè)括號(hào)躯砰。
Python腳本:https://github.com/SevenWen/SQLiLab/blob/master/Less-3.py
Less-4
同樣嘗試單引號(hào):
服務(wù)器正常輸入。
嘗試雙引號(hào):
服務(wù)器返回sql語句錯(cuò)誤携丁。觀察錯(cuò)誤提醒琢歇,id應(yīng)該是在雙引號(hào)和括號(hào)之間。所以注入就是將之前的雙引號(hào)后面加上括號(hào)就行