宽字节注入%df的理解

宽字节注入是sql注入的一种手段,利用mysql使用GBK编码(因为GBK占用2个字节,而ascii占用1个字节),将两个字符看作一个汉字,从而消除转义字符\。(当某字符的大小为一个字节时,称其字符为窄字节当某字符的大小为两个字节时,称其字符为宽字节。所有英文默认占一个字节,汉字占两个字节。)

以下是个人总结对%df的理解

为什么使用%df

不一定使用%df,但前一个字节ascii码要大于128才到汉字的范围。

为什么那么多人都用%df

and被php转义后就是%df

逃逸过程

php.ini中有一个get_magic_quotes_gpc功能,在开启时所有的 ' (单引号), " (双引号), \ (反斜线) and 空字符会自动加上转义符\。

以'单引号为例,如何使\'中的'逃逸出来:

?id=1%df' and 1=1--+

%df'=>%df\'(单引号会被加上转义字符\)

%df\'=>%df%5c'(\的十六进制为%5c)

%df%5c'=>縗'(GBK编码时会认为这时一个宽字节)

'成功逃逸,sql语法正确

sqlmap中同时也存在宽字节绕过的脚本unmagicquotes.py,使用方式如下

sqlmap -u "ip" --tamper="unmagicquotes.py" --batch

  • 8
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值