0


SQL注入分类有哪些,一看你就明白了。SQL注入点/SQL注入类型/SQL注入有几种/SQL注入点分类

「作者主页」:士别三日wyx
「作者简介」:CSDN top200、阿里云博客专家、华为云享专家、网络安全领域优质创作者

在这里插入图片描述

SQL注入分类

根据输入的
「参数」类型,可以将SQL注入分为两大类:
「数值型」注入、
「字符型」注入

一、数值型注入

前台页面输入的参数是「数字」。

比如下面这个根据ID查询用户的功能。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xw240yvV-1645149522105)(E:\data\TyporaPages\image-20220212164303912.png)]
后台对应的SQL如下,字段类型是数值型,这种就是数值型注入。

select*fromuserwhere id =1;

二、字符型注入

前台页面输入的参数是「字符串」。

比如下面这个登录功能,输入的用户名和密码是字符串。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FF5m4MCS-1645149253353)(E:\data\TyporaPages\image-20220212164911231.png)]
后台对应的SQL如下,字段类型是字符型,这种就是字符型注入。

select*fromuserwhere username ='zhangsan'and password ='123abc';

字符可以使用单引号包裹,也可以使用双引号包裹,根据包裹字符串的「引号」不同,字符型注入可以分为:「单引号字符型」注入和「双引号字符型」注入。

1)单引号字符型注入

参数使用「单引号」包裹时,叫做单引号字符型注入,比如下面这个SQL,就是单引号字符型注入。

select*fromuserwhere username ='zhangsan';

2)双引号字符型注入

参数使用「双引号」包裹时,叫做双引号字符型注入,比如下面这个SQL,就是双引号字符型注入。

select*fromuserwhere username ="zhangsan";

3)带有括号的注入

理论上来说,只有数值型和字符型两种注入类型。

SQL的语法,支持使用一个或多个「括号」包裹参数,使得这两个基础的注入类型存在一些变种。

a. 数值型+括号的注入

使用括号包裹数值型参数,比如下面这种SQL。

select*fromuserwhere id =(1);select*fromuserwhere id =((1));
包裹多个括号……

b. 单引号字符串+括号的注入

使用括号和单引号包裹参数,比如下面这种SQL。

select*fromuserwhere username =('zhangsan');select*fromuserwhere username =(('zhangsan'));
包裹多个括号……

c. 双引号字符串+括号的注入

使用括号和双引号包裹参数,比如下面这种SQL

select*fromuserwhere username =("zhangsan");select*fromuserwhere username =(("zhangsan"));
包裹多个括号……

三、其他类型

除了根据参数的分类以外,还有其他分类方式。

根据数据的「提交方式」分类:

  1. GET注入:使用get请求提交数据,比如 xxx.php?id=1.
  2. POST注入:使用post请求提交数据,比如表单。
  3. Cookie注入:使用Cookie的某个字段提交数据,比如在Cookie中保存用户信息。
  4. HTTP Header注入:使用请求头提交数据,比如检测HTTP中的源地址、主机IP等。

根据页面「是否回显」分类:

  1. 显注:前端页面可以回显用户信息,比如 联合注入、报错注入。
  2. 盲注:前端页面不能回显用户信息,比如 布尔盲注、时间盲注。

感谢你的点赞、收藏、评论,我是三日、祝你幸福。


本文转载自: https://blog.csdn.net/wangyuxiang946/article/details/122996953
版权归原作者 士别三日wyx 所有, 如有侵权,请联系我们删除。

“SQL注入分类有哪些,一看你就明白了。SQL注入点/SQL注入类型/SQL注入有几种/SQL注入点分类”的评论:

还没有评论