SQL注入绕过

什么是绕过

个人理解是系统或者安全软件为了避免攻击者篡改一些参数来获取数据,就会自动过滤一些篡改信息的关键词。但系统和软件终究是人编写出来的,攻击者们还是有各种各样的方法绕过安全点的检测来达到自己的目的。
 

注释符号绕过

MySQL中常见的注释符有这么几个:

#注释内容
– 注释内容
/* 注释内容 */

其中 - - 要注意跟后面的注释内容有一个空格

(接下来的展示都用mysql命令行展示)
实例:
在这里插入图片描述
在这里插入图片描述
 

双写绕过

经典的,例如联合查询中 union select可能都会被waf过滤掉,但是它只会过滤一次啊,那我们多输入一次就行了。
在这里插入图片描述
这里是没有过滤的所以会显示语法错误,实际情况如果发生过滤可以这么写。或者ununionion seleselectct 这种的都行,因为它只会过滤一次关键字。
 

大小写绕过

有的waf对于大小写不敏感,可以利用
实例:
在这里插入图片描述

 

空格绕过

空格可以由底下的符号替代:

/**/
%09、%0a、%0d、%0b等
括号绕过空格
+号、tab、两个空格、反引号等

实例:
在这里插入图片描述
在这里插入图片描述

 

等号绕过

可以使用like,rlike,regexp代替=号
也可以使用<>绕过,实际上<>等价于 ! = ,所以我们在前面再加一个 ! 就是双重否定了
实例:
在这里插入图片描述
在这里插入图片描述

 

特殊符号绕过

and 替换为 &&
not 替换为 !
or 替换为 ||
异或替换为 xor

实例:
在这里插入图片描述
 

内联注释绕过

内联注释就是把一些特有的仅在MYSQL上的语句放在 /* !..*/ 中,这样这些语句如果在其它数据库中是不会被执行,但在MYSQL中会执行。前面一篇文章有提过一嘴
实例:
在这里插入图片描述

 

参数污染绕过

提供多个parameter= value的值集来混淆绕过WAF。鉴于 http://example.com?id=1&?id=’ 或’1’=‘1’ - '在某些情况下(例如使用Apache / PHP),应用程序将仅解析最后一个(第二个) id =, waf只解析第一个id=。这似乎是一个合理的请求,但应用程序仍然接收并处理恶意输入。今天的大多数waf都不容易受到HTTP参数污染(HPP)的影响,但仍然值得一试。
实例:
在这里插入图片描述

 

宽字节注入

我们都知道在字符型注入中要先用单引号闭合下再输入sql命令,详见SQL注入闭合方式。但是如果程序中在我们输入的单引号之前加上个反斜杠比如: ’ 。这样的话这个单引号就是个字符了,意思就是斜杠与单引号的结合使得单引号转义,没有单引号闭合的作用,就起到了防护的作用。
为了突破这个防护,我们可以使用宽字节注入的方式来进行突破,使用:

%df ’

当我们在单引号之前加上%df的时候,也就是输入%df ’ 这样传入到数据库中就会变成:

%df%5c ’

原理是在GBK编码中,%df与 \ 的转义符%5c结合会编码成一个汉字,这样就使得 ’ 逃逸了。此外 %DE%5C,%E0%5C也都是可以的。

 

小结

以上介绍的知识我目前掌握的一些绕过方式,其中编码(16进制编码,Unicode编码)绕过,过滤引号逗号等没有介绍。具体可以参考:
sql注入绕过方法总结
SQL注入9种绕过WAF方法

  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SQL注入是一种常见的安全漏洞,它允许攻击者通过在应用程序的输入字段中插入恶意的SQL代码来执行未经授权的操作或者绕过身份验证。下面是SQL注入绕过的一些原理: 1. 输入验证不充分:当应用程序没有对用户输入进行充分的验证和过滤时,攻击者可以在输入字段中插入恶意的SQL代码。 2. 字符串拼接:当应用程序使用字符串拼接的方式构建SQL查询语句时,攻击者可以通过在输入字段中插入特殊字符来改变原始查询的语义。 3. 不安全的查询参数化:如果应用程序没有使用参数化查询或预编译语句来处理用户输入,而是直接将用户输入拼接到SQL查询语句中,攻击者可以通过在输入字段中插入恶意代码来修改查询的行为。 4. 盲注:攻击者可以通过不断尝试不同的输入来推测数据库中的信息,例如使用布尔盲注或时间盲注等技术。 为了防止SQL注入攻击,开发人员应该采取以下措施: 1. 输入验证和过滤:对用户输入进行严格的验证和过滤,确保只接受预期的数据类型和格式。 2. 使用参数化查询或预编译语句:使用参数化查询或预编译语句来处理用户输入,确保输入不会被解释为SQL代码的一部分。 3. 最小权限原则:为数据库用户分配最小的权限,限制其对数据库的访问和操作。 4. 安全编码实践:遵循安全编码实践,包括使用安全的密码存储和传输,避免直接将敏感信息存储在数据库中等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值