什么是宽字节注入_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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 按位取反~运算_按位与按位或按位异或运算符

    按位取反~运算_按位与按位或按位异或运算符按位取反~运算首先我们来看按位取反的概念按位取反运算符:对数据的每个二进制位取反,即把0变成1,把1变成0.即~x=-x-1这里按照定义9的二进制为00001001其按位取反为11110110结果为-10这个过程没有任何问题,但是如果忘记了负数的二进制表达方式,就会对这个结果产生疑问,为什么11110110表示-10而不是503?理解按位取反的关键是理解11110110为什么表示-10,也就是负数的二进制表达方式。现在计算机普遍使用补码表示负数。知道补码,求源码的方式是:值取反再加1。

    2022年8月14日
    6
  • 判断一个字符串是否是回文字符串「建议收藏」

    判断一个字符串是否是回文字符串「建议收藏」#include<string.h>#include<stdio.h>main(){ chara[40];//定义一个存放待判断的字符数组 inti=0,len; printf("pleaseinputyourstring:(length<40):"); gets(a);//逐个读取a数组中的字符 len=strlen(a);//计…

    2022年5月10日
    37
  • hbase面试题整理

    hbase面试题整理一.简单介绍下Hbase(1)Hbase一个分布式的基于列式存储的数据库,基于Hadoop的hdfs存储,zookeeper进行管理。(2)Hbase适合存储半结构化或非结构化数据,对于数据结构字段不够确定或者杂乱无章很难按一个概念去抽取的数据。(3)Hbase为null的记录不会被存储.(4)基于的表包含rowkey,时间戳,和列族。新写入数据时,时间戳更新,同时可以查询到以前的版本.(5)hbase是主从架构。hmaster作为主节点,hregionserver作为从节点。..

    2022年5月31日
    40
  • pycharm如何缩进多行代码_pycharm整段代码缩进

    pycharm如何缩进多行代码_pycharm整段代码缩进pycharm多行代码缩进、左移在使用pycharm时,经常会需要多行代码同时缩进、左移,pycharm提供了快捷方式1、pycharm使多行代码同时缩进鼠标选中多行代码后,按下Tab键,一次缩进四个字符2、pycharm使多行代码同时左移鼠标选中多行代码后,同时按住shift+Tab键,一次左移四个字符…

    2022年8月25日
    0
  • matlab 画折线图并美化

    matlab 画折线图并美化使用函数:plot(绘图);set(设置坐标属性);print(输出图片)代码如下:X=1:9;Y=10:10:90;f2=figure(2);set(gcf,’unit’,’centimeters’,’position’,[0,0,8,6])plot(X,Y,’-ok’,’LineWidth’,1,’MarkerSize’,5,’MarkerFaceColor’,’k’)set(gca,’FontName’,’TimesNewRoman’,’FontSize’

    2022年6月7日
    205
  • Centos7关闭selinux命令「建议收藏」

    关闭selinux步骤0x01用vi修改selinux的配置文件vi/etc/selinux/config0x02修改#SELINUX=enforcing为SELINUX=disabled这里就不修改了,注释掉好了,再直接复制修改为SELINUX=disabledselinux的工作模式enforcing强制模式permissive宽容模式disabled关闭什么是selinux?selinux是Linux的一种安全子系统 Linux中的权限管..

    2022年4月18日
    228

发表回复

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

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