宽字节注入入门详解

本文详细解析了宽字节注入的原理,利用GBK与ASCII编码差异进行SQL逃逸,通过实例演示如何使用%df'等特殊字符进行表名、字段名的爆破,以及如何查找敏感信息。

原理:
GBK 占用两字节

ASCII占用一字节

PHP中编码为GBK,函数执行添加的是ASCII编码(添加的符号为“\”),MYSQL默认字符集是GBK等宽字节字符集。

大家都知道%df’ 被PHP转义(开启GPC、用addslashes函数,或者icov等),
单引号被加上反斜杠\,变成了 %df\’,其中\的十六进制是 %5C ,
那么现在 %df\’ =%df%5c%27,
如果程序的默认字符集是GBK等宽字节字符集,
则MySQL用GBK的编码时,会认为 %df%5c 是一个宽字符,也就是縗,也就是说:%df\’ = %df%5c%27=縗’,有了单引号就成功逃逸了。
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

练手:http://chinalover.sinaapp.com/SQL-GBK/index.php?id=1

一进去就看到
在这里插入图片描述
加个‘
在这里插入图片描述
在这里插入图片描述
addslasher函数实锤了,
那么要从中逃逸出去。
考虑到宽字节注入。

输入%df’
在这里插入图片描述
ojbk,绝b宽字节,
那么现在就开始用常规套路了。
爆破各种table ,column.

用order by 猜测字段:

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

2和三之间,
如果大一点的话可以用二分法去找,这样比较快。

用union找出库名:

http://chinalover.sinaapp.com/SQL-GBK/index.php?id=1%df'
union select 1,database()%23

再找表名,再根据表名找column

再找出可疑的·

其中有一个要注意的,
就是在查询ctf表中时,
=ctf
是不行的,这时候可以用十六进制转码。
0x 转码后内容!(小技巧)
找到pw后解密就OK

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值