宽字节SQL注入
2023-09-14 09:08:51 时间
注入产生的原理:
数据库设置为GBK编码:
宽字节注入源于程序员设置MySQL连接时错误配置为:set character_set_client=gbk,这样配置会引发编码转换从而导致的注入漏洞.
1、正常情况下,当GPC开启或者使用addslashes函数会过滤GET或POST提交的参数时,黑客使用的单引号(')会被转义成:\';
2、但如果存在宽字节注入,我们输入%df%27时,首先经过上面提到的单引号转义变成了%df%5c%27(%5c是反斜杠),之后在数据库查询
前由于使用了GBK多字节编码,即在汉字编码范围内两个字节会编码为一个汉字.从而造成注入漏洞.
服务端代码设置为UTF-8编码:
utf-8转GBK
这里思考下“锦”这个字,它的utf-8编码是e98ca6,它的gbk编码是%e5%5c,而上面提到过反斜杠\正好为%5c.所以如果我们将title设置
为:'錦',首先经过addlashes函数或GPC对单引号转义变为:錦\', 然后会经过iconv函数会对"錦"转化为gbk编码,最后就是%e5%5c%5c%27.
反斜杠被转义了(%5c%5c),从而单引号逃逸出来就会引发注入漏洞。
相关文章
- java一个字符几个字节_Java 语言中一个字符占几个字节?
- 微型计算机的字节取决于什么的宽度,计算机的字长取决于什么?
- Idea如何方便的查看Java字节码文件,你是怎么做的
- 字节流-文件输入流FileInputStream[基本使用]
- 宽字节注入是什么_sqlmap宽字节注入
- 宽字节注入讲解
- php宽字节注入,[投稿]宽字节注入详解
- 【Groovy】MOP 元对象协议与元编程 ( Groovy 类内部和外部分别获取 metaClass | 分析获取 metaClass 操作的字节码 | HandleMetaClass 注入方法 )
- SQL开发知识:sql注入过程详解
- [四] java虚拟机JVM编译器编译代码简介 字节码指令实例 代码到底编译成了什么形式详解编程语言
- MySQL字段各类型字节数探究(mysql字段字节)
- 字节跳动申请“字节大脑”相关商标
- Linux字节:探索计算机世界的新途径(linuxbyte)
- 字节跳动1/3员工不支持取消大小周 员工:每年少赚10万块
- 字节跳动高管辟谣女员工色情交易:系前员工追求未果造谣
- 防止mysql SQL注入攻击的措施(Mysql的sql注入)
- 如何防范SQL注入攻击:MySQL的几种安全策略(sql注入mysql)
- 阿里涉性侵男员工曾去字节面试 已被无限期终止招聘流程
- SQL注入攻击对MSSQL的威胁及防护策略(sql注入 mssql)
- Oracle一字节,开拓新的世界(Oracle1字节)
- SQL数据库的高级sql注入的一些知识