sql注入——宽字节注入

为小星星学java / 2024-03-20 / 原文

先了解什么叫魔术引导:

  • 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--+