和第一课一样,这一课同样是我们在id后面输入数字,服务器会回复相应的数据库查询:
尝试注入:id=1' and 1=1
发现数据库报错。这节课的名字叫做integer,所以在sql语句中的id可能是以整数形式输入的。删除掉单引号再尝试:
存在注入,并且只要把第一课中的单引号去掉就可以直接使用第一课中的语句。
注入脚本:https://github.com/SevenWen/SQLiLab/blob/master/Less-2.py
Less-3
与第二课相同,用单引号做尝试:
查看语法错误的提示,'1'') LIMIT 0,1 。 我们注入了一个单引号,所以1之后多了一个单引号,而且之后还有一个括号。所以这个应该是括号包裹着的单引号:
$sql="SELECT * FROM users WHERE id=('$id') LIMIT 0,1";
所以注入就是将第一课的单引号后面加上半个括号。
Python脚本:https://github.com/SevenWen/SQLiLab/blob/master/Less-3.py
Less-4
同样尝试单引号:
服务器正常输入。
尝试双引号:
服务器返回sql语句错误。观察错误提醒,id应该是在双引号和括号之间。所以注入就是将之前的双引号后面加上括号就行