什么是宽字节注入_innodb_buffer_pool_size

什么是宽字节注入_innodb_buffer_pool_size宽字节注入产生的原理宽字节注⼊源于程序员设置MySQL连接时错误配置为:setcharacter_set_client=gbk,这样配置会引发编码转换从⽽导致的注⼊漏洞。具体原理如下:1,正常情况下当GPC开启或使⽤addslashes函数过滤GET或POST提交的参数时,⿊客使⽤的单引号’就会被转义为:’;2,但如果存在宽字节注⼊,我们输⼊%df%27时⾸先经过上⾯提到的单引号转义变成了%…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

宽字节注入产生的原理

宽字节注⼊源于程序员设置MySQL连接时错误配置为:set character_set_client=gbk,

这样配置会引发编码转换从⽽导致的注⼊漏洞。具体原理如下:

1,正常情况下当GPC开启或使⽤addslashes函数过滤GET或POST提交的参数时,⿊客使

⽤的单引号 ‘就会被转义为: ‘;

2,但如果存在宽字节注⼊,我们输⼊%df%27时⾸先经过上⾯提到的单引号转义变成了

%df%5c%27(%5c是反斜杠),之后在数据库查询前由于使⽤了GBK多字节编码,即

在汉字编码范围内两个字节会被编码为⼀个汉字。然后MySQL服务器会对查询语句进⾏

GBK编码即%df%5c转换成了汉字“運”,⽽单引号逃逸了出来,从⽽造成了注⼊漏洞。

GBK编码导致宽字节注⼊

GBK编码是数据库编码,跟前台的编码⽆关

GBK转UTF-8

原理其实跟前⾯⾥原理⾥说的第2条是⼀样的,我们输⼊%df%27时⾸先经过上⾯提到的

单引号转义变成了%df%5c%27(%5c是反斜杠),然后%df%5c正好属于gbk的汉字编

码范围,经过iconv转换到utf-8编码转换后变成了汉字“運”,从⽽吞掉了反斜杠使得单引

号逃脱出来。

UTF-8转GBK

这⾥我们思考下“錦”这个字,它的utf-8编码是e98ca6,它的gbk编码是%e5%5c,⽽上⾯

提到过反斜杠\正好为%5c。

所以如果我们将title设置为:錦’,⾸先经过addlashes函数或GPC对单引号转义变为:錦

’,然后会经过icnov函数会对”錦”转化为gbk编码,最后就是:%e5%5c%5c%27。反斜

杠被转义了(%5c%5c),从⽽单引号逃逸出来就会引发注⼊漏洞。

copy自:sqler

嘿嘿

标签:编码,27,字节,GBK,df%,原理,5c,注入

来源: https://www.cnblogs.com/v01cano/p/10423144.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/182086.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 【安装填坑】—- ERROR: Could not install packages due to an OSError: [Errno 2] No such file or directory:

    【安装填坑】—- ERROR: Could not install packages due to an OSError: [Errno 2] No such file or directory:用anaconda安装python开发环境的时候,使用pip安装某些包,会弹出如下这种提示ERROR:CouldnotinstallpackagesduetoanOSError:[Errno2]Nosuchfileordirectory:’d:\users\xxxx\appdata\local\continuum\anaconda3\envs\faiss\lib\site-packages\numpy-1.20.3.dist-info\METADATA’除了要修改注册表

    2022年6月24日
    97
  • qt服务器主动断开tcp连接_qtcpsocket 多线程

    qt服务器主动断开tcp连接_qtcpsocket 多线程简述对于一个C/S结构的程序,客户端有些时候需要实时得知与服务器的连接状态。而对于客户端与服务器断开连接的因素很多,现在就目前遇到的情况进行一下总结。分为下面六种不同情况客户端网线断开客户端网络断开客户端通过HTTP代理连接服务器,代理机器断开代理客户端通过HTTP代理连接服务器,代理机器的网络断开客户端通过HTTP代理连接服务器,代理机器的网线断开服务器断开同时对于以上六种情况又分为连接服务器之…

    2025年10月12日
    1
  • C语言学生成绩管理系统设计 《C语言程序设计》实训报告[通俗易懂]

    C语言学生成绩管理系统设计 《C语言程序设计》实训报告[通俗易懂]一、课程设计题目《学生成绩管理系统设计》二、实训目的(1)掌握结构化程序设计的基本方法,基本掌握面向对象程序设计的基本思路和方法。(2)掌握C++的基本概念和基础知识。(3)通过训练能够读懂较为复杂的C++语言源程序并具备基本C++语言程序设计的能力。(4)通过实训,培养自己编写、调试、分析程序的能力。(5)培养自己独立解决问题,查找资料的能力。同学之间相互帮助,相互交流,相互合作的团队精神。(6)培养自己良好的学习兴趣,独立的编程风格。(7)通过实训检查自己学习上的

    2022年6月20日
    32
  • js 中的构造函数,构造函数作用,构造函数和普通函数的区别

    js 中的构造函数,构造函数作用,构造函数和普通函数的区别函数的定义方式:1.声明式函数定义:function函数名(){};这种定义方式,会将函数声明提升到该函数所在作用域的最开头,也是就无论你在这个函数的最小作用域的那儿使用这种方式声明的函数,在这个作用域内,你都可以调用这个函数为你所用。2.函数表达式:letfun=function(){};此方式定义的函数,只能在该作用域中,这段赋值代码执行之后才能通过fun()调用函数,否则,由于变量声明提升,fun===undefined。3.newFunction形式:varfun1

    2025年10月4日
    3
  • java工作流_Java 实现简单工作流

    java工作流_Java 实现简单工作流工作流主要运用到反射机制创建一张工作流表如:主键|工作流Code|工作流内容其中工作流,内容为Json格式工作流内容如下{“procCode”:”OPS”,”procName”:”c端补齐(乘客信息补全)”,”taskControlVoList”:[{“sortNo”:”10″,”taskCode”:”OPC”,”taskName”:”检查对应的订单信息是否存在”,”taskl…

    2022年7月7日
    21
  • deviceiocontrol true什么意思_audioread函数

    deviceiocontrol true什么意思_audioread函数前言:最近需要对Windows中的设备进行编程操作,其中涉及到非常重要的函数DeviceIoControl,在使用的时候也比较的复杂,国内这一块中文资料比较少,在学习之余顺便将其翻译出来,以供参考,如有错误,欢迎指正。lcb0281@163点comMSDN原文地址:DeviceIoControlfunctionDeviceIoControl将控制代码直接发送到指定的设备驱动…

    2025年10月1日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号