宽字节 %df �

addslashes()
addslashes() 函数返回在预定义字符之前添加反斜杠的字符串。
预定义字符是:
单引号(') 
双引号(")
反斜杠(\)
提示:该函数可用于为存储在数据库中的字符串以及数据库查询语句准备字符串。
 
 
%df = �
%5c = \
%df%5c%27 = �\'
 
原理:mysql 在使用 GBK 编码的时候,会认为两个字符为一个汉字,例如%aa%5c 就是一个 汉字(前一个 ascii码大于 128 才能到汉字的范围)。我们在过滤 ' 的时候,往往利用的思 路是将 ' 转换为 \'(转换的函数或者思路会在每一关遇到的时候介绍)。 因此我们在此想办法将 ' 前面添加的 \ 除掉,一般有两种思路: 
 
1、%df 吃掉 \ 具体的原因是 urlencode('\) =%5c%27,我们在%5c%27 前面添加%df,形 成%df%5c%27,而上面提到的 mysql 在 GBK 编码方式的时候会将两个字节当做一个汉字,此 事%df%5c 就是一个汉字,%27 则作为一个单独的符号在外面,同时也就达到了我们的目的。
 
2、将 \’ 中的 \ 过滤掉,例如可以构造 %**%5c%5c%27 的情况,后面的%5c 会被前面的%5c 给注释掉。这也是 bypass的一种方法。
 
?id=-8%df%27
?id=-8%df%27union%20select%201,user(),3--+
order by ?id=-8%df%27%20%20order%20by%2033--+
?id=-8%df%5c
 
 
?id=-8'
clipboard.png
 
它进行转义 加了个斜杠
http://sqli.com/Less-32/?id=-8%df%27
加个%df mysql 在 GBK 编码方式的时候会将两个字节当做一个汉字,此 事%df%5c 就是一个汉字,%27 则作为一个单独的符号在外面
 
 
?id=8(这里有个自动转义的\) 加个%df跟\组成一个汉字 在加个'闭合前面的引号 ?id=-8%df%27相当于前面闭合了一个 这之间只需要写sql--+
 
自动转义 那就加个%df 吃掉这个\
 
2.png 
 
此文纯属方便自己理解随意撰写 不喜勿喷

本博客所有文章如无特别注明均为原创。作者:odaycaogen复制或转载请以超链接形式注明转自 123``blog
原文地址《宽字节 %df �

郑重声明:本文只做技术交流学习使用,请尊重当地法规法律,勿对企业或个人网站及app进行破坏。如产生连带法律责任 123``blog 作者本人概不负责。

相关推荐

发表评论

路人甲 表情
看不清楚?点图切换 Ctrl+Enter快速提交

网友评论(0)