首页 > 数据库 >MYSQL注入之宽字节注入

MYSQL注入之宽字节注入

时间:2022-10-18 23:56:36浏览次数:75  
标签:编码 字节 df GBK 汉字 MYSQL 注入

宽字节注入

之前没有太重视过这个SQL注入类型,今天一好兄弟面试时突然被问到了,遂立刻进行小小研究。

成因

宽字节是相对于ascii这样单字节而言的;像 GB2312、GBK、GB18030、BIG5、Shift_JIS 等这些都是常说的宽字节,实际上只有两字节。GBK 是一种多字符的编码,通常来说,一个 gbk 编码汉字,占用2个字节。一个 utf-8 编码的汉字,占用3个字节。

转义函数:为了过滤用户输入的一些数据,对特殊的字符加上反斜杠\进行转义;

宽字节注入指的是 mysql 数据库在使用宽字节(如:GBK)编码时,会认为两个字符是一个汉字(前一个ascii码要大于128(比如%df),才到汉字的范围),而且当我们输入单引号时,mysql会调用转义函数,将单引号变为',其中\的十六进制是%5c,mysql的GBK编码,会认为%df%5c是一个宽字节,也就是’’,从而使单引号闭合(逃逸),进行注入攻击。

我们可以使用GBK编码程序来看看%df%5c到底是什么

image-20221018232836736

确实如上文所言。

注入

我们可以使用SQLi-labs的Less-32进行演示:

image-20221018232948594

报错之后实际上该怎么注入就怎么注入了,没差。

%df被过滤

我们回归好兄弟的第二个问题:如果%df被过滤了怎么办?

还记得我们在最前面的时候,提到的一句话:

宽字节注入指的是 mysql 数据库在使用宽字节(如:GBK)编码时,会认为两个字符是一个汉字(前一个ascii码要大于128(比如%df),才到汉字的范围)

于是我们根据这句话不难可以发现,就算把%df过滤了,随便来一个ASCII码大于128的就可以。

来个%de

image-20221018233455334

image-20221018233549137

最后查出个version以示尊重

image-20221018233756876

附录

GBK URL编码网站:
http://www.mytju.com/classcode/tools/urldecode_gb2312.asp

标签:编码,字节,df,GBK,汉字,MYSQL,注入
From: https://www.cnblogs.com/tysec/p/kuan-zi-jie-zhu-ru.html

相关文章

  • 字节码技术分享
    字节码详解前言万事开头难字节码相关内容往深了挖其实东西很多,我就按照自己学习的一个心理历程去分享一下这块儿的内容,起个抛砖引玉的作用,很多地方没有特别深入的研究,有......
  • mysql调优
    mysql的存储形式为b+树1170*1170*16mysql文件存储在data文件夹下MyiSAM存储引擎其中MYI文件存储的是B+树结构,索引文件和数据文件是分离的InnoDB存储引擎聚集做引......
  • 天翼云服务器ubuntu20.04安装Mysql8记录
    1、查看系统版本1root@wwqovahhked4rb48:~#uname-a2Linuxwwqovahhked4rb485.4.0-70-generic#78-UbuntuSMPFriMar1913:29:52UTC2021x86_64x86_64x86_......
  • 如何不写一行代码把 Mysql json 字符串解析为 Elasticsearch 的独立字段
    Elasticsearch最少必要知识实战教程直播回放1、事出有因实战问题:有数百万数据需要导入Elasticsearch做性能对比测试,但当前数据存储在Mysql中,且核心字段以Json字符......
  • MySQL备份与恢复
    MySQL备份与恢复......
  • Dinky的使用——csv2mysql
    要求:通过dinky把csv的文本文件里面的数据同步到mysql数据库里面一、添加依赖包在dinky的pulgins和flink的lib目标下添加csv的依赖包,添加完后重启dink和flink下载地址可......
  • MySQL添加、修改和删除数据
    1.向MySQL数据表插入数据语法:insertinto表名(字段1,字段2......) values(值1,值2.....);如果数据是字符型,必须使用单引号或者双引号,如:"值1"。新建一个数据库student......
  • Dinky的使用——kafka2mysql
    需求:通过在kafka的topic里面传入json串,再把数据同步到mysql中,这个也可以作为半结构化数据同步的案例一、添加依赖包将依赖包放到dinky的pulgins目录和flink的lib目录下,并......
  • 千万级别mysql 分库分表后表分页查询优化方案初探
    在实际的软件系统开发过程中,随着使用的用户群体越来越多,表数据也会随着时间的推移,单表的数据量会越来越大。以订单表为例,假如每天的订单量在4万左右,那么一个月的订单量......
  • mysql数据库整理之修改数据
    1.对数据进行更新操作数据在原有的基础上修改格式:update表名set列1=值1,列2=值2where条件where条件:数据中的唯一性例如:--修改智能手机,价格上调到15......