代码编织梦想

宽字节注入是sql注入的一种手段,利用mysql使用GBK编码(因为GBK占用2个字节,而ascii占用1个字节),将两个字符看作一个汉字,从而消除转义字符\。(当某字符的大小为一个字节时,称其字符为窄字节当某字符的大小为两个字节时,称其字符为宽字节。所有英文默认占一个字节,汉字占两个字节。)

以下是个人总结对%df的理解

为什么使用%df

不一定使用%df,但前一个字节ascii码要大于128才到汉字的范围。

为什么那么多人都用%df

and被php转义后就是%df

逃逸过程

php.ini中有一个get_magic_quotes_gpc功能,在开启时所有的 ' (单引号), " (双引号), \ (反斜线) and 空字符会自动加上转义符\。

以'单引号为例,如何使\'中的'逃逸出来:

?id=1%df' and 1=1--+

%df'=>%df\'(单引号会被加上转义字符\)

%df\'=>%df%5c'(\的十六进制为%5c)

%df%5c'=>縗'(GBK编码时会认为这时一个宽字节)

'成功逃逸,sql语法正确

sqlmap中同时也存在宽字节绕过的脚本unmagicquotes.py,使用方式如下

sqlmap -u "ip" --tamper="unmagicquotes.py" --batch

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_18980147/article/details/127502369

ctf从入门到提升之宽字节注入_anquanniu牛油果的博客-爱代码爱编程_ctf 宽字节注入

CTF入门到放弃 为什么说是从入门到放弃呢?(开个玩笑)如果说大家对CTF有了解的话,其实应该知道CTF是一个什么类型的比赛,这个比赛涉及的范围和影响有多大。如果说你真的想打好比赛,那也是真的非常不容易的,所以说这是非常困难

SQL注入进阶之1宽字节注入攻击(Pikachu漏洞练习平台)-爱代码爱编程

说在开头:文章是我通过查询资料后按照自己的理解总结出来的,所以如果有说法不对的地方,欢迎大佬指正~ 宽字节注入攻击可以说是SQL注入的进阶攻击方式,在我之前列出的学习计划体系中,前面的union联合查询注入攻击、布尔盲注、报错注入、时间盲注这几种常见的SQL注入方式,在我之前的博客中已经分析过了,那么今天在下面这些进阶的SQL注入方式中,要翻牌的就是宽字

SQL注入之宽字节注入演示(详细介绍宽字节)-爱代码爱编程

宽字节介绍原理即绕过演示 自己对宽字节的认识和理解,如果有错误望指出,共同学习。 宽字节的介绍 GBK 是占两个字节(也就是名叫宽字节,只要字节大于1的都是)ASCII 占一个字节PHP中编码为GBK ,函数执行添加的是ASCII编码,mysql默认字符集是GBK等宽字节字符集为什么要介绍宽字节? 宽字节的出现个人感觉是因为SQL语句过滤了一些字符

宽字节注入原理分析-爱代码爱编程

什么是宽字节? 如果一个字符的大小是一个字节的,称为窄字节;如果一个字符的大小是两个字节的,成为宽字节 像GB2312、GBK、GB18030、BIG5、Shift_JIS等这些编码都是常说的宽字节,也就是只有两字节英文默认占一个字节,中文占两个字节什么是宽字节注入? 原理:宽字节注入发生的位置就是PHP发送请求到MYSQL时字符集使用charact

sql注入之宽字节注入学习与实践-爱代码爱编程

宽字节(两个字节)注入是由于mysql数据库使用了GBK编码,认为两个字符是一个汉字;注入的原理是利用编码转换,将服务器端强制添加的本来用于转移的 \ 符号吃掉而能够使得攻击者输入的引号起到闭合作用而可以进行SQL注入。 当输入 ‘ (单引号)时,被处理成\' 编码后为%5C%27再带入变成id=1\' and …… 无法注入 而当mysql在使用GB

mysql宽字节数_sql注入入门 之mysql宽字节注入-爱代码爱编程

1,如下,宽字节注入的原型实例代码,注意连接字符集为gbk,对传入的值已用addslashes()做了转义,另外,php是把id当做一个字符串来接收的,后面在闭合的时候需要注意下,具体如下: 2,本此用于测试的 宽字节注入点,如下 http://192.168.3.23/wide/0x01/index.php?id=2 3,这时当我们

mysql 宽字符注入_对宽字节注入的理解-爱代码爱编程

今天看了bhst的这篇文章 http://www.bhst.org/viewthread.php?tid=1382&extra=page%3D1 了解了宽字符注入的一些东西 1. php 使用 php_escape_shell_cmd这个函数来转义命令行字符串时是作为单字节处理的 2. 而当操作系统设置了GBK、EUC-KR、SJIS等

mysql sql宽字节注入_SQL注入之宽字节注入-爱代码爱编程

About SQL Injection 宽字节注入 0x01 前言 对于SQL注入,我估计搞安全的都玩的滚瓜烂熟了,搞站什么的都是分分钟来的,但是之前做了一道宽字节注入的题目,又打开了我一扇通往新世界的大门(PS:早都碰到过,只不过一直没有时间写)。 0x02 宽字节和mysql 单字节字符集: 所有的字符都使用一个字节来表示,比如 AS

MySQL宽字节注入漏洞分析_宽字节注入-爱代码爱编程

概念 单字节字符集: 所有的字符都使用一个字节来表示,比如 ASCII 编码。 多字节字符集: 在多字节字符集中,一部分字节用多个字节来表示,另一部分(可能没有)用单个字节来表示。 两位的多字节字符有一个前导字节和尾字节。 在某个多字节字符集内,前导字节位于某个特定范围内,尾字节也一样。 UTF-8 编码: 是一种编码的编码方式(多字节编码),

对字符集、编码和宽字节注入的思考-爱代码爱编程

这篇博文详细介绍宽字节注入以及SQL注入与编码会出现的安全问题:浅析白盒审计中的字符编码及SQL注入 在此不做搬运工,只做自己的思考和总结。 个人认为学习的正确过程是理解概念、建立概念的关系、推测、实验论证和归纳。 概念: (1)字符(character)是各种文字和符号的总称,包括各国家文字、标点符号、图形符号、数字等。 (2)字符集(Charact

sql-lab (32~35)包含对 宽字节注入的原理理解及注意事项(后持续更新)-爱代码爱编程

(32~35)包含对 宽字节注入的原理理解及注意事项 sql-lab-32 我们先对32关进行一个传参,发现: 1\'and 1=2 在这里 \ 代表的意思是‘转义’,把后面的 ‘ 转义成了字符串,使单引号不再具有’作用‘,仅仅是’内容’而已,或者说这个单引号无法发挥和前后单引号闭合的作用,使后面的输入不被当作代码执行。 所以我们就有两个办法

宽字节注入原理学习-爱代码爱编程

0x01 开篇 本题用到考点是宽字节注入,遇到这种注入类型学习记录。 推荐两篇链接:浅析白盒审计中的字符编码及SQL注入 | 离别歌 Von的博客 | Von Blog 为方便自我下次忘记,总结一下: 1.宽字节涉及到编码问题,便于理解需要看一看 2.宽字节注入现在已经很少见,因为如今的编码大多使用utf-8 常见url编码: 空

sql 注入漏洞(十一)宽字节注入_aτθ的博客-爱代码爱编程

一、宽字节注入 在 SQL 进行防注入的时候,一般会开启 gpc,过滤特殊字符。一般情况下开启 gpc 是可以防御很多字符串型的注入,但是如果数据库编码 不对,也可以导致 SQL 防注入绕过,达到注入的目的。如果数据库设置宽字节字符集 gbk 会导致宽字节注入,从而逃逸gpc。 1、前提条件 简单理解:数据库编码与 PHP 编码设置为不同的两个编码

sql注入-宽字节注入_小洋葱头头的博客-爱代码爱编程

SQL注入-宽字节注入 原理: 为防止SQL注入,一般都会开启gpc来过滤特殊字符,但如果数据库设置字节解析与PHP不同,并试用了宽字节字符集,就会导致宽字节注入,从而逃避gpc。(GBK和Big5等) 列: 环境s

spring boot 篇四: spring data jpa使用sql server_alvachien的博客-爱代码爱编程

本文目录 SQL Server Express的安装或直接DockerSQL Server JDBC DriverTCP/IP 链接端口 Integrated SecuritySSL总结 本篇介绍篇一至篇三

mybatis sql解析问题(jsqlparserexception)_梦魇梦狸º的博客-爱代码爱编程

错误代码 select if(instr('avc','a')=0, 'avc', 'aaa') -- 以及 SELECT * FROM gtmc_ic_report_information where occurre

【sql注入-爱代码爱编程

1 ASCII编码、GBK编码与URL编码简介 1.1 ASCII编码 ASCII码是由美国有关的标准化组织出台的,后来它被国际标准化组织(International Organization for Standardi

spark系列—spark sql执行过程解析_spark执行sql-爱代码爱编程

今天来讲讲spark-sql的执行计划,有助于我们理解spark的运行原理。 一、简述       日常我们使用spark时,主要是通过写sql语句嵌套在Python或者Shell脚本中提交到spark集群,了解spark-sql的运行方式有助于我们更好的使用spark。 二、Spark-sql的运行流程       用户提交的Applicat