Less23-28
Less-23
这关对注释符–+和#有过滤
因为id被单引号包裹
解决方法是通过构造payload来闭合单引号
爆数据库
爆表
爆列
如果采取报错注入的话,还有一种方法是通过or ‘1’=’1闭合单引号
如果用count(),group by,floor(rand(0)2)则要用and ‘1’=’1才会报错
延时注入
此处如果用or ‘1’=’1的话会导致后面恒为真,导致前面的sleep不被执行,所以应当换成and ‘1’=’1
Less-25
从源代码可以分析出对关键字or 和and有过滤,并且不区分大小写
由于只过滤一次,所以可以用复写关键字的方法注入关键字or和and
爆数据库
爆表
爆列
延时注入
报错注入
Less-25a
这关没有报出错误信息,所以考虑用延时注入
看出id没有被引号包裹
Less-26
从源代码分析出过滤了关键字and,or,/*,–,#,空格,/
解决方法:(1)双写and 和 or
(2)使用or ‘1’=’1 闭合单引号
(3) %09 TAB键(水平)
%0a 新建一行
%0b TAB键(垂直)
%0c 新的一页
%0d return功能
%a0 空格
替代空格,但经过尝试,window下以上所有字符都替代不了空格,迫于无奈只好将源码中过滤空格的语句注释
延时注入
报错注入
联合注入
Less-26a
这题没有报错信息,其余与上题一致
延时注入
看出id被(‘’)包裹
因为没有报错信息,所以无法用报错注入
于是用联合注入
爆库
爆表
爆列
Less-27
这关对关键字union和select有过滤
复写union,三写select或者大小写混合即可解决
这里id被单引号包裹
爆库
爆表
爆列
Less-27a
这关没有报错信息,输入id=1’
输入正确结果,因为id为int类型,所以说明id可能被双引号包裹
输入id=1”
查询不到结果,说明被双引号包裹
这关跟上一关一样,对关键字union和select进行了过滤,因为没有报错信息,所以不能用报错注入
联合注入
Less-28
Id被(‘’)包裹,这关没有报错信息,所以用联合注入
发现union和select 同时使用时就会被过滤掉,而且无视大小写
这里解决方法是复写union\sselect
Less-28a
这关只对union\sselect进行了过滤,无报错信息
复写+联合注入就解决了