SQL注入之宽字节注入

SQL注入之宽字节注入

本人记录这些为了学习的同时,能够有很好的记录,所谓好记性不如烂笔头,同时发布出来,也是希望大家有朋友学习到这里想上网搜索一些东西,以便借用和探讨一些问题,总之,不断学习!!

自我修养:没有一个系统是安全的

今天讲SQL注入之宽字节注入!

理解

宽字节注入是指什么呢?
现在大部分,如百度这些,都是UTF-8编码,占3个字节;像采用了GBK编码的这种数据库,占2个字节。
这样就会导致编码有时不统一,那我们就引入了宽字节注入。

实例讲解

我们所用例子还是:
在这里插入图片描述
当我们输入:?id=1’ select 1,2,3%20 %23,发现上面部分是没有报错的。
在这里插入图片描述
然而当我们输入:?id=1’ select 1,2,3%20时,发现上面部分仍然没有报错(回显点没有按照我们想象的那样出来),但是图片下面显示我们可以发现下面,提示了1’,由此可知我们的引号被 \转义了。下面提示出问题所在了
在这里插入图片描述
我们想利用引号来SQL注入,但是现在确被转义了,又该怎么做呢?
这里我们就要进行构造payload了,既然我们输入的 '会变成 ’ 那么我们就想办法拿掉这个\,因为我们知道由于URL编码 ’ => %5c%27
所以这里我们构造 %df%5c,来利用JDK编码,这个涉及JDK编码知识,详细还请大家具体去网上了解,我这里直接告诉大家:
%df%5c 是一个繁体汉字【数据库是JDK编码的,我们这样构造两个字符】

那么我们输入就变成 ?id=%df’ union select 1,2,3 %20%23 => (?id=[汉字]’ select 1,2,3%20%23),由此我们的引号就把前面的都消掉了。
在这里插入图片描述
宽字节的核心到这里就基本上解决了,后面的步骤和前面讲的时间、盲注SQL类似逻辑思维,所用工具仍然是burp
今天的学习就到这里,持续学习中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值