SQL注入扫盲 专业版技术分享

 

SQL注入扫盲:一直在听安全从业的人说SQL注入,到底什么是SQL注入。SQL注入又分哪几类。我们需要来简单...



SQL注入扫盲:

一直在听安全从业的人说SQL注入,到底什么是SQL注入。SQL注入又分哪几类。我们需要来简单说一下。在风险方面, SQL 注入攻击是位居前列的,与缓冲区溢出等漏洞基本相当。而且如果要实施缓冲区溢出攻击,攻击者必须首先能绕过站点的防火墙;而对于 SQL 注入攻击,由于防火墙为了使用户能访问网络应用程序,必须允许从 Internet 到 Web 服务器的正向连接,因此一旦网络应用程序有注入漏洞,攻击者就可以直接访问数据库进而甚至能够获得数据库所在的服务器的访问权,因此在某些情况下, SQL 注入攻击的风险要高于所有其他漏洞。

0x01  什么叫注入点:

面向客户的网页,一般会开放内容查找的功能性窗口,以便用户在网站众多的信息中有效快速的检索到需要的内容。一般的用户提交的都是正常数据。不怀好意的人会提交一些经过精心构造的数据库查询语句来让前端提交给数据库,以此来让数据库返回一些危险的信息。(比如在数据库中新建一个账号)。

扩展一下:注入点类型也有很多,通常分为数字型,字符型,或者依照http来说,还可以分为get post cookies型。

这里需要简单来说下:

用户在网页提交查询内容,该查询内容会返回给数据库,数据库会根据内容来执行相应的数据返回或执行相应的动作。大致如下:


0x02  那常见的注入点在哪?如下:





0x03  哪里能找到注入漏洞?

• 表单提交,主要是POST请求,也包括GET请求。

• URL参数提交,主要为GET请求参数。

• Cookie参数提交。

• HTTP请求头部可修改的值,比如:

Referer、 User_Agent等。

• 边缘的输入点,比如.mp3文件的一些文件信息等。

0x04  SQL注入漏洞的产生:

1、使用动态拼接的sql语句

2、页面异常信息(错误信息)处理不当

3、未判断变量传入合法性

0x05  SQL注入的分类:

1.普通SQL注入

2.旁注

3.盲注

1.普通的SQL注入就是攻击者根据数据库返回的错误信息来判断自己所需要的内容,来反复提交精心构造的SQL语句,达到攻击的目的。

2.旁注从字面上就很好理解“从旁注入”。就是利用同一服务器上的不同WEB网站,来得到一个服务器上其他网站的权限。(这个就和SQL注入的目的有一些关系了)

比较有意思的就是盲注了。在讨论盲注之前,我们需要来了解一下SQL注入攻击的防御手段

(1)在服务端正式处理之前对提交数据的合法性进行检查;

(2)封装客户端提交信息;

(3)替换或删除敏感字符/字符串;

(4)屏蔽出错信息。

方案(4)是目前最常被采用的方法,很多安全文档都认为 SQL 注入攻击需要通过错误信

息收集信息,有些甚至声称某些特殊的任务若缺乏详细的错误信息则不能完成,这使很多安全专家形成一种观念,即注入攻击在缺乏详细错误的情况下不能实施。而实际上,屏蔽错误信息是在服务端处理完毕之后进行补救,攻击其实已经发生,只是企图阻止攻击者知道攻击的结果而已。

所谓盲注就是在错误信息被屏蔽的情况下使攻击者仍能获得所需的信息,并继续实施注入攻击。

0x06  SQL注入攻击流程图:



0x07  SQL注入漏洞的利用:



0x08  SQL注入折射出来的问题:

SQL注入直到现在也可以对很多应用程序进行注入,这表明应用程序级别的漏洞,仅仅依靠对服务器的基本设置做一些改动是不能够解决的,包括WAF也无法从根本上防范SQL注入。必须从提高应用程序的开发人员的安全意识入手,加强对代码安全性的控制,在服务端正式处理之前对每个被提交的参数进行合法性检查,以从根本上解决注入问题。

更多内容,请关注本人微博及IE-LAB实验室官方微博。

IE-LAB网络实验室

专注网络工程师成长的平台定期技术软文推送

职场趣闻分享

学习交流

技术讨论:

公开课QQ群:79791756

课程咨询QQ:3283449150

微信学习服务号:ie-lab

微信订阅号:   ie-lab2

ispccie笔试稳定通过,hcie笔试稳定通过,dcccie稳定通过

报名学习信息安全课程赠送思科安全IE课程

IE-LAB实验室助力工程师职业成长



长按图片 识别二维码 一键加关注



    关注 IELAB网络实验室


微信扫一扫关注公众号

0 个评论

要回复文章请先登录注册