SQL注入分类

**SQL全称是Structured Query Language**

是一种结构化的查询语言,用于与数据库进行交互并能够被数据库解析。SQL注入攻击是一种常见的注入攻击类型。攻击方式在用户与程序进行交互时发生的。如在表单输入、搜索框输入功能中插入SQL命令,然后发送到服务端。服务端对数据进行了解析执行,并执行了一些非预期的操作。

 

**按照注入点类型来分类**

 

**(1)数字型注入点**

 

在 Web 端大概是 `http://xxx.com/news.php?id=1` 这种形式,其注入点 `id` 类型为`数字`,所以叫数字型注入点。

这一类的 SQL 语句原型大概为 `select * from 表名 where id=1`。

组合出来的sql注入语句为:`select * from news where id=1 and 1=1`

 

> eg:http://www.xxx.com/news.php?id=1===>http://www.xxx.com/news.php?id=1 and 1=1

 

**(2)字符型注入点**

 

在 Web 端大概是 `http://xxx.com/news.php?name=admin` 这种形式,其注入点 `name` 类型为`字符类型`,所以叫字符型注入点。

这一类的 SQL 语句原型大概为 `select * from 表名 where name='admin'`注意多了引号。

组合出来的sql注入语句为:`select * from news where chr='admin' and 1=1 ' '`闭合单引号

 

    chr='admin' union select 1,2,3,4 and '1'='1   ====>  chr='admin'(闭合前面单引号) union select 1,2,3,4 and '1'='1'

 

判断字符型漏洞的 SQL 注入点:

 

① 还是先输入单引号 `admin'` 来测试

SQL 语句就会变为:`SELECT * FROM table WHERE username = 'admin''`

页面异常。

 

② 输入:`admin' and 1 = 1 --`

注意:在 admin 后有一个单引号 ',用于字符串闭合,最后还有一个注释符 --

SQL 语句变为:`SELECT * FROM table WHERE username = 'admin' and 1 = 1 --`

页面显示正确。

 

③ 输入:`admin' and 1 = 2 --`

SQL 语句变为:`SELECT * FROM table WHERE username = 'admin' and 1 = 2 --`

页面错误。

 

满足上面三个步骤则有可能存在字符型 SQL 注入。

 

> eg:http://www.xxx.com/news.php?name=admin ===>http://www.xxx.com/news.php?name='admin' and 1=1 ' '

 

**(3)搜索型注入点**

 

这是一类特殊的注入类型。这类注入主要是指在进行数据搜索时没过滤搜索参数,一般在链接地址中有`“keyword=关键字”`,有的不显示在的链接地址里面,而是直接通过搜索框表单提交。此类注入点提交的 SQL 语句,其原形大致为:`select * from 表名 where 字段 like '%关键字%'。`

 

组合出来的sql注入语句为:`select * from news where search like '%关键字%' and '%1%'='%1%'`

 

测试可以用`%' union select 1,2,3,4 and '%'='`这个语句

 

>  eg: http://www.xxx.com/keyword=xxx`====>http://www.xxx.com/keyword=xxx%' union select 1,2,3,4 and '%'='

 

 

**按照数据提交的方式来分类**

 

**(1)GET 注入**

 

提交数据的方式是 GET , 注入点的位置在 GET 参数部分。比如有这样的一个链接http://xxx.com/news.php?id=1 , id 是注入点。

 

**(2)POST 注入**

 

使用 POST 方式提交数据,注入点位置在 POST 数据部分,常发生在表单中。

 

**(3)Cookie 注入**

 

HTTP 请求的时候会带上客户端的 Cookie, 注入点存在 Cookie 当中的某个字段中。

 

**(4)HTTP 头部注入**

 

注入点在 HTTP 请求头部的某个字段中。比如存在 User-Agent 字段中。严格讲的话,Cookie 其实应该也是算头部注入的一种形式。因为在 HTTP 请求的时候,Cookie 是头部的一个字段。

 

**按照执行效果来分类**

 

**(1)基于布尔的盲注,**即可以根据返回页面判断条件真假的注入。

 

**(2)基于时间的盲注**,即不能根据页面返回内容判断任何信息,用条件语句查看时间延迟语句是否执行(即页面返回时间是否增加)来判断。

 

**(3)基于报错注入,**即页面会返回错误信息,或者把注入的语句的结果直接返回在页面中。

 

**(4)联合查询注入,**可以使用union的情况下的注入。

 

**(5)堆查询注入,**可以同时执行多条语句的执行时的注入

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值