千家信息网

宽字节注入解析

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,在一个CTF练习的网站,看到了一个宽字节注入的题目,我是一个web萌新,没什么经验,一开始也没有想到是宽字节,还是一位朋友给我提到的,让我猛然大悟,咳咳。。。做一些总结。练习题目网站地址:http:/
千家信息网最后更新 2026年10月31日宽字节注入解析
在一个CTF练习的网站,看到了一个宽字节注入的题目,我是一个web萌新,没什么经验,一开始也没有想到是宽字节,还是一位朋友给我提到的,让我猛然大悟,咳咳。。。做一些总结。

练习题目网站地址:http://ctf.bugku.com。
一、了解一下宽字节注入原理
前提:
1、我们都知道,在防御SQL注入的时候,大多说都是使用的过滤特殊字符,或者使用函数将特殊字符转化为实体,就是说在字符转义,添加'\'。这里第一条就是有这个机制。
2、设置宽字节字符集,这里为GBK字符集,GBK字符集占用两个字节。关键就在于这个设置字符集。通常有很多方法可以设置,例如:
(1) mysql_query,如mysql_query("SET NAMES 'gbk'", $conn)、mysql_query("setcharacter_set_client = gbk", $conn)。

(2) mysql_set_charset,如mysql_set_charset("gbk",$conn)。
实现过程:当我们测试的时候,输入"%df'",这个时候如果php函数是使用的addslashes()的时候,会在冒号的前面加上'\'。也就变成了%df\' 。对应的编码是%df%5c'.这时候网站字符集是GBK,MYSQL使用的编码也是GBK的话,就会认为%df\是一个汉"運'",这样的话,单引号前面的\就不起作用了,从而转义失败,题目就会出现报错信息。
我们就以网站的题目测试一下:

1、查看网页源码

出现字符集gb2312,这时候就应该想到宽字节注入
2、报错测试可注入

出现了报错信息,因为构成的语句中会多出一个单引号。例如查询语句为:

$name=addslashes($_POST['name'])Select * from user  where name='$name'

将我们的%df'传递进去就变成了:

Select * from user where name='%df\''

这样我们的单引号和前面的闭合,多出一个原来的单引号,报错。
3、查询字段数:

%df' order by 2 %23

这里%23表示注释,意指去将后面的语句注释掉包括什么多出的单引号和limit限制只能查询一行的语句。

经过几次测试,确定字段数为2.
4、判断数据库:

%df' union select 1,database() %23


得到数据库的 名字。

5、接着根据题目提示,给出了表名和字段名,可以直接查询字段内容

%df' union select 1,string from sql5.key where id=1 %23

个人见解

字符 字节 字符集 引号 题目 字段 时候 网站 语句 查询 测试 特殊 信息 函数 就是 数据 数据库 注释 编码 转义 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 广州紫鲸互联网科技有限公司 互联网科技工作委员会主任 圆梦互联网科技 深圳科技互联网 北京互联网科技 互联网 科技创新 浩特互联网科技 互联网金融科技委员会 左右互联网络科技 苏州五指互联网络科技有限 互联网科技扶贫时间 互联网金融科技展 本届互联网博览会上的黑科技 中科明德北京互联网科技 元气玛特互联网科技公司是外包吗 郑州欣桑互联网科技有限公司 宁波跨境商互联网科技有限公司 互联网科技职业技能培训学校 第三届互联网大会安防黑科技 互联网科技大会大佬 互联网金融 金融科技 互联网科技作文 银优互联网科技有限公司 四个字互联网科技公司取名 广州慧亚互联网科技怎么样 福州新华互联网科技学校 知乎 乌鲁木齐新华智原互联网科技学校 郑州欣桑互联网科技有限公司 易企秀互联网科技是做什么的 新氧科技和美国互联网有关系吗
0