sql注入——宽字节注入
先了解什么叫魔术引导:
- Magic_quotes_gpc()函数在PHP中的作用是判断解析用户提交的数据,如包括有:POST、GET、COOKIE过来的数据增加转义字符“\”,来做一定的过滤
- 当打开时,所有的'(单引号),"(双引号),\(反斜线)和NULL字符都会被自动加上一个反斜 线进行转义。
- 魔术引号防护很常见,虽然魔术引号在PHP5.3.0后就被废除,5.4.0后就被移除,但是一般的CMS 全部都有使用,有专门的魔术引号函数魔术引号在低版本中默认开启
- 打开php.ini 配置文件,如果magic_quotes_gpc=on,那就是开启了魔术引号
GBK 编码格式:
- 宽字节是相对于ascii这样单字节而言的;像GBK等这些都是常说的宽字节,实际上只有两个字节, 一个gbk编码汉字,占两个字节
宽字节注入的原理就是利用mysql的一个特性,mysql在使用GBK编码的时候,会认为两个字符是一个汉字,转义符\的GBK编码是5C,那么我们可以加入用别的字节让它成为宽字节,这样就能合并成一个汉字。
在后面写查询语句的时候,单引号和也会被转义,我们当然不能转换成汉字,我们可以把需要单引号括起来的地方用十六进制转换后写入,这样就不用写单引号了。
参考代码:?id=-1%E6' union select 1,2, group_concat(column_name) from information_schema.columns WHERE table_name=0x7573657273--+