MySQL魔术引号绕过

本文介绍了在PHP环境中,如何通过编码解码函数和宽字节注入来绕过魔术引号或addslashes对SQL注入的防护。讲解了检查SQL语句是否被转义以及利用多重URL编码和宽字节注入技巧进行绕过的方法。重点讨论了在PHP5.4以后版本中,如何应对没有GPC的情况,以及在MVC框架下应用addslashes()函数的常见实践。
摘要由CSDN通过智能技术生成

绕过魔术引号

简介

现在的WEB程序基本都有对SQL注入的全局过滤,运维人员配置PHP环境是一般会开启魔术引号GPC,即magic_quotes_gpc=On的情况下,如果输入的数据有单引号(’)、双引号(”)、反斜线(\)与 NUL(NULL 字符)等字符都会被加上反斜线进行转义处理。不过GPC在PHP5.4版本后就取消了,所以现在一般都用addslashes()函数来代替GPC进行过滤处理。目前用PHP开发的应用一般是MVC的框架模式进行开发,对GET、POST和COOKIE等传递的参数通常使用addslashes()函数进行转义,并引入一个类似common.php的文件进行处理addslashes()函数对接收的参数进行过滤,尤其是单引号。

绕过

  1. 查看sql语句是否被 ’ 或 “ 保护,’ " 是否被魔术引号或addslashes转义(GPC在PHP5.4版本后就取消了),转义了之后,查看源代码是否有编码滥用,导致可以绕过转义。

  2. 编码解码函数导致的Bypass
    一些编码解码的函数像[[urldecode]]、[[base64]]decode的使用会导致绕过addslashes函数的全局防护

  3. 宽字节绕过 %df (宽字节注入产生原因:mysql_query(“SET NAMES ‘gbk’”))

  4. 多重url编码
    http://localhost/sqltest/urldecode.php?id=1%2527 %2527是 ’ 的两重

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值