美文网首页
深入理解Mysql宽字符注入

深入理解Mysql宽字符注入

作者: odaycaogen | 来源:发表于2019-07-29 16:45 被阅读0次

之前记录过一篇 写的不够详细

概念

宽字节是相对于ascII这样单字节而言的;像GB2312、GBK、GB18030、BIG5、Shift_JIS等这些都是常说的宽字节,实际上只有两字节

GBK是一种多字符的编码,通常来说,一个gbk编码汉字,占用2个字节。一个utf-8编码的汉字,占用3个字节

原理

mysql在使用GBK编码会认为两个字符为一个汉字,只要前一个字符的ascii码>128就是汉字的编码范围

利用场景

转义函数:为了过滤用户输入的一些数据,对特殊的字符加上反斜杠“\”进行转义;Mysql中转义的函数addslashes,mysql_real_escape_string,mysql_escape_string等,还有一种是配置magic_quote_gpc,不过PHP高版本已经移除此功能

addslashes():

函数返回在预定义字符之前添加反斜杠的字符串。

预定义字符是:

单引号(')

双引号(")

反斜杠()

NULL

绕过思路

想办法给\前面再加一个\(或单数个即可),变成\\’,这样\被转义了,'逃出了限制

去掉转义符\

\的16进制编码为5c

只要前一个字符的ascii码>128就是汉字的编码范围

实验

1、加个%df跟\组成一个汉字 再加个'闭合前面的引号

2、129的十六进制为81,我们输入%81'试一下

这里%df url解码后就是图示乱字符

playload

%81' or 1=1#

%df' order by33--+

工具

http://tool.chinaz.com/tools/urlencode.aspx

进制转换

原文地址《深入理解Mysql宽字符注入

相关文章

  • 深入理解Mysql宽字符注入

    之前记录过一篇 写的不够详细 概念 宽字节是相对于ascII这样单字节而言的;像GB2312、GBK、GB1803...

  • CTF中常见的web

    一、SQL注入 0x01宽字节注入 copy一份解释过来:mysql在使用GBK编码的时候,会认为两个字符为一个汉...

  • Mysql注入-宽字节注入,二次编码注入

    宽字节注入 造成宽字节注入的原因,主要是因为使用了宽字节编码,导致一些字符被绕过 当我们注入 1' 时,若被转义成...

  • PHP宽字符注入

    在使用PHP连接MySQL的时候,当设置"set character_set_client=gbk"的时候 会导致...

  • PHP宽字节注入

    在PHPMySql语句中存在着宽字节注入漏洞,MySQL宽字节注入漏洞是SQL注入漏洞攻防技术相互促进的一个典型例...

  • mysql宽字节注入

    宽字节注入主要来自程序员设置数据库编码为非英文编码就有可能产生宽字节注入,典型情景是网站使用GBK编码,数据库使用...

  • 字符集与校对规则

    MySQL字符集及校对规则的理解 阅读目录:MySQL的字符集和校对规则 MySQL的字符集 MySQL与字符集 ...

  • 深入理解Emoji(三) —— Emoji详解

    深入理解Emoji(一) —— 字符集,字符集编码深入理解Emoji(二) —— 字节序和BOM Emoji字符是...

  • 技术分享 | 巧用 binlog Event 发现问题

    作者:高鹏(八怪)文章末尾有他著作的《深入理解 MySQL 主从原理 32 讲》,深入透彻理解 MySQL 主从,...

  • DVWA之“SQL注入”

    漏洞类型:SQL注入/Get 字符型 安全级别:Low 目标:通过注入SQL语句,获取 MySql 数据库存放的用...

网友评论

      本文标题:深入理解Mysql宽字符注入

      本文链接:https://www.haomeiwen.com/subject/nrzleqtx.html