网络安全学习笔记——宽字节注入

由于有些程序在设定的时候会有关于转义 \ 的严格的防护,此时任何的特殊字符都会被1对1转义,(\ 严格转义)所以此时就出现了绕过(Bypass)的概念, 绕过就是绕过防火墙等防护,使用来攻击的特殊字符能够逃出防护,进而使攻击语句闭合,实现攻击

宽字节注入——使用%df闭合转义符,突破严格防护

可以绕过的情形——当数据库的编码是GBK编码

GBK规定组成汉字的都是一些大字节,故可使用%df使它和转义符 \ 闭合成为一个汉字

(ASCII表示的是到07FH,而用于宽字节注入的这个%df按十进制d是13,f是15,所以称为大字节)GBK编码两个字节表示一个字符,一个字节有8个二进制位;其他编码一般是一个字节表示一个字符

原参数
http://chinalover.sinaapp.com/SQL-GBK/index.php?id=1

由于该网站做了严格防护,会1对1进行转义,又因为该网站是GBK编码(一般情况下,看不到代码只能猜)
使用 %df 可使它与转义符合成一个汉字————即此时完成了和转义符的闭合,后续注入如前所述

http://chinalover.sinaapp.com/SQL-GBK/index.php?id=1%df'


http://chinalover.sinaapp.com/SQL-GBK/index.php?id=1%df'-- -


http://chinalover.sinaapp.com/SQL-GBK/index.php?id=1%df'and 1=2 -- -

然后进行Union联合注入测试

测试过程中在爆列名时,由于注入点对特殊字符严格防护,故table_name="users"中的双引号会转义
此时可使用https://www.107000.com/下转换了的hex编码直接替换"users"

在最后爆账号密码的时候,表名不用处理
因为SQL语句只会处理赋值语句————也就是说,只有遇见a=xxx的时候才会1对1转义

在账号密码中间插入hex编码,0x3a————会被解析为冒号,但由于并不是对系统进行赋值,所以不影响

hex编码可表示一个字符串

故可使用在JSON序列化编码下转换了的hex编码直接替换"users"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Nosery

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

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

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

打赏作者

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

抵扣说明:

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

余额充值