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)
图片.png
查库
图片.png
查表
因为 or 被过滤掉了 所以information要写成 infoorrmation
查列
图片.png
爆数据
图片.png
改一下语句 再来
图片.png
2
图片.png
less-26a
和less-26 差不多只是不会显错
less-27
图片.png可以看到 过滤了union 和 select 的大小写形式和开头大写的形式 所以我们可以用 混合型大小写 突破
报表
图片.png
爆数据
图片.png
图片.png
less-27a 基于less-27的盲注版本
判断数据库 名的长度
图片.png
爆数据
less-28
图片.png那个i表示正在匹配的模式,i是忽略大小写,\s就是匹配任意空白字符,制表符啊,换行啊空格啊等
总之 还是要用 %a0
查库
查表
图片.png
查字段
图片.png
爆数据
图片.png
less-28a是 less-28的盲注
图片.png爆数据的语句一样
less-29
查库
图片.png
查表
图片.png
爆数据
图片.png
less-30 和 less-29 差不多 只不过是双闭合
图片.pngless-31 不多说。。。。
图片.pngless-32 (宽字节 注入)
id=1' 测试
图片.png
可见在'前面加了反斜杠,尝试宽字节注入
原理
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的一种方法。
查库
图片.png
查表
图片.png
爆数据
图片.png
less-33和less-32 一样
图片.pngless-34 POST 类
用 burp 抓包修改
图片.png
查表
图片.png
爆数据
图片.png
less-35 和 less-33 相似
图片.pngless-36
图片.pngless-37 和 less-34 一样
图片.pngless-38 (堆叠注入)
图片.png查库
图片.png
查表
图片.png
爆数据
图片.png
网友评论