less-26
urlencode %27 是 ' ,%26 是 & %a0 是 空格
构造基本语句
id=0'union%a0select%a01,2,3%a0%26%26%%a0271%27=%271
(id=0'union select 1,2,3 && '1'='1)
查库
查表
因为 or 被过滤掉了 所以information要写成 infoorrmation
查列
爆数据
改一下语句 再来
2
less-26a
和less-26 差不多只是不会显错
less-27
可以看到 过滤了union 和 select 的大小写形式和开头大写的形式 所以我们可以用 混合型大小写 突破
报表
爆数据
less-27a 基于less-27的盲注版本
判断数据库 名的长度
爆数据
less-28
那个i表示正在匹配的模式,i是忽略大小写,\s就是匹配任意空白字符,制表符啊,换行啊空格啊等
总之 还是要用 %a0
查库
查表
查字段
爆数据
less-28a是 less-28的盲注
爆数据的语句一样
less-29
查库
查表
爆数据
less-30 和 less-29 差不多 只不过是双闭合
less-31 不多说。。。。
less-32 (宽字节 注入)
id=1' 测试
可见在'前面加了反斜杠,尝试宽字节注入
原理
mysql在使用GBK编码的时候,会认为两个字符为一个汉字,例如%aa%5c就是一个汉字(前一个ascii码大于128才能到汉字的范围)
因此我们在此想办法将 ' 前面添加的 \ 除掉,一般有两种思路:
(1) %df吃掉 \ 具体的原因是urlencode(') = %5c%27,我们在%5c%27前面添加%df,形成%df%5c%27,而上面提到的mysql在GBK编码方式的时候会将两个字节当做一个汉字,此事%df%5c就是一个汉字,%27则作为一个单独的符号在外面,同时也就达到了我们的目的。
(2) 将 ' 中的 \ 过滤掉,例如可以构造 %**%5c%5c%27的情况,后面的%5c会被前面的%5c给注释掉。这也是bypass的一种方法。
查库
查表
爆数据
less-33和less-32 一样
less-34 POST 类
用 burp 抓包修改
查表
爆数据
less-35 和 less-33 相似
less-36
less-37 和 less-34 一样
less-38 (堆叠注入)
堆叠注入讲解
查库
查表
爆数据