首页 网络安全 安全学院 查看内容

SQL注入攻击高级

2016-9-2 19:27 1359 0

摘要: 前言前面我们学习了如何寻找,确认,利用SQL注入漏洞的技术,本篇文章我将介绍一些更高级的技术,避开过滤,绕开防御。有攻必有防,当然还要来探讨一下SQL注入防御技巧。目录第五节 避开过滤方法总结5.1、大小写变种 ...

前言

前面我们学习了如何寻找,确认,利用SQL注入漏洞的技术,本篇文章我将介绍一些更高级的技术,避开过滤,绕开防御。有攻必有防,当然还要来探讨一下SQL注入防御技巧。

目录


第五节 避开过滤方法总结

  • 5.1、大小写变种
  • 5.2、URL编码
  • 5.3、SQL注释
  • 5.4、空字节
  • 5.5、二阶SQL注入

第六节 探讨SQL注入防御技巧

  • 6.1、输入验证
  • 6.2、编码输出

正文

  • 第五节 避开过滤方法总结

Web应用为了防御包括SQL注入在内的攻击,常常使用输入过滤器,这些过滤器可以在应用的代码中,也可以通过外部实现,比如Web应用防火墙和入侵防御系统。避开过滤的方法是灵活的,本节我总结了一些常用的技巧。在我们不知道过滤规则的时候可以尝试一下。

5.1、大小写变种

这种技巧适用于关键字阻塞过滤器不聪明的时候,我们可以变换关键字字符串中字符的大小写来避开过滤,因为使用不区分大小写的方式处理SQL关键字。

例如:(下面的代码就是一个简单的关键字阻塞过滤器)

这段代码的缺陷就在strstr()函数是对大小写敏感的,所以我们可以通过大小写变种来绕过。

=   

5.2、URL编码

URL编码用途广泛,可以通过它绕过多种类型的输入过滤器。

双URL编码有时候会起作用,如果Web应用多次解码,在最后一次解码之前应用其输入过滤器。

因为双URL编码,第一次解码%2f%2a进入输入过滤器,所以成功绕过了。当然这个使用前提是后面有一个URL解码。

5.3、SQL注释

很多开发人员认为,将输入限制为单个就可以限制SQL注入攻击,所以他们往往就只是阻止各种空白符。

但是内联注释不使用空格就可以构造任意复杂的SQL语句。

声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除


路过

雷人

握手

鲜花

鸡蛋

最新评论

返回顶部