宽字节注入%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
来源地址:https://blog.csdn.net/qq_18980147/article/details/127502369
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341