一、宽字节概念:
1、单字节字符集:所有的字符都使用一个字节来表示,比如 ASCII 编码(0-127)
2、多字节字符集:在多字节字符集中,一部分字节用多个字节来表示,另一部分(可能没有)用单个字节来表示。
3、UTF-8 编码: 是一种编码的编码方式(多字节编码),它可以使用1~4个字节表示一个符号,根据不同的符号而变化字节长度。
4、常见的宽字节: GB2312、GBK、GB18030、BIG5、Shift_JIS GB2312 不存在宽字节注入,可以收集存在宽字节注入的编码。
5、宽字节注入时利用mysql的一个特性,使用GBK编码的时候,会认为两个字符是一个汉字
二、addslashes()函数
1、addslashes() 函数返回在预定义字符之前添加反斜杠的字符串。
2、预定义字符:单引号(’),双引号(”),反斜杠(),NULL
3、实例
https://xxxxx?name=hello%27
输入的单引号被转义了,没办法逃逸
然后翻看了下页面源码及请求头,发现客户端编码是gbk
尝试输入hello%df%27,console报错提示引号未闭合了,后面就是构造而外的js代码,并把后面的对于字符注释掉,让语法正确
三、靶场实战
1.首先打开页面,看到维护信息,点进去观察其带有id参数,因为题意是宽字节注入
2.直接输入宽字节注入经典绕过方式:%df’,即可看到报错页面,
3.在SQLmap中直接将id参数修改,进行常规探测
4.密码采用了MD5加密,解密以后即可得到登录密码,登录即得到KEY
以上是“SQL注入中宽字节注入是什么”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!
文章标题:SQL注入中宽字节注入是什么,发布者:亿速云,转载请注明出处:https://worktile.com/kb/p/23157