绕过函数过滤

本文介绍了如何利用宽字节特性绕过常见的SQL注入防护函数,如addslashes()和mysql_real_escape_string()。通过在单引号前插入特定的宽字节字符,可以成功避开字符转义,实现SQL注入。实验详细描述了在GBK编码环境下如何构造注入语句,以演示这一过程。
摘要由CSDN通过智能技术生成

预备知识

本实验要求实验者具备如下的相关知识。
为了保证用户输入的信息不会影响到程序进程,往往会对用户的输入进行处理。之前是对危险字符进行替换,但是有些字符的替换会影响用户的表达,那么就可以用转义的方法对用户的输入符号进行完整保留。本实验有三个部分,第一部分是自定义转义函数,第二三部分都是用标准的addslashed()函数和mysql_real_escape_string()来进行转义。
addslashes()函数在指定的预定义字符前添加反斜杠。
这些预定义字符是:单引号(')、双引号(“)、反斜杠(\)、NULL。
mysql_real_escape_string()函数转义SQL语句中使用的字符串中的特殊字符。
下列字符受影响:\x00、\n、\r、\、’、”、\x1a。

字符、字符集与字符序

字符(character)是组成字符集(character set)的基本单位。对字符赋予一个数值(encoding)来确定这个字符在该字符集中的位置。
字符序(collation)指同一字符集内字符间的比较规则。

UTF8

由于ASCII表示的字符只有128个,因此网络世界的规范是使用UNICODE编码,但是用ASCII表示的字符使用UNICODE并不高效。因此出现了中间格式字符集,被称为通用转换格式,即UTF(Universal Transformation Format)。

宽字节

GB2312、GBK、GB18

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值