宽字节
由于编码的不同存在用两个字节显示一个字的编码格式,如GB2312,GBK,GB18030,BIG5等
当我们将解析编码为宽字节时,我们可用构造互溶”/“的字符,借此绕过转义。
宽字节注入
一般SQL注入的防范会通过转义如用户输入“'”
转义为"'"
从而阻止’号的闭合
输入 | 处理 | 编码 | 输出 |
---|---|---|---|
‘ | ' | %5C%27 ' |
1' and |
Mysql使用GBK时会认为两个字符为一个字 | |||
%df’ | %df' |
%df%5C%27 運’ | 運’ and |
要使编码亲一个Ascii码大于128才会变成汉字。
方法:
注入时’前面加%df或其他能够和互溶的字符。
前提条件:
- Mysql编码为宽字节编码
- 转义存在互溶构造
实际利用:
黑盒:直接添加%df进行测试
白盒:
-
查看Mysql编码是否为GBK
-
是否使用preg_replace进行了单引号转义为
'
-
是否使用addslashes进行转义
-
是否使用Mysql-real_escap_string进行转义(有抵抗部分宽字节注入)
防范:
-
使用UTF-8编码
-
使用Mysql-real_escap_string时设置mysql_set_charset(‘gbk’,$conn);
-
可用设置Mysql的连接参数,character_set_client=binary为二进制的模式避免宽字节注入
FROM :https://ailumao.cn/ | Author:Ailumao
更换Mac环境后想着换一个好看的主题,并且鉴于今年8月份 GithubPage 国内不开全局不能访问以及博客访问速度的问题,准备先把博客搭到 GithubPage上用 CDN 加速看看效果,再考虑要不要搬到VPS上。 本地环境搭建安装 Hexo 之前需要先安装…
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论