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

article/2025/9/16 21:46:35

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

在这里插入图片描述

SQL注入分类

  • 一、数值型注入
  • 二、字符型注入
    • 1)单引号字符型注入
    • 2)双引号字符型注入
    • 3)带有括号的注入
      • a. 数值型+括号的注入
      • b. 单引号字符串+括号的注入
      • c. 双引号字符串+括号的注入
  • 三、其他类型

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

一、数值型注入

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

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

select * from user where id = 1;

二、字符型注入

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

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

select * from user 
where username = 'zhangsan' and password = '123abc';

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

1)单引号字符型注入

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

select * from user where username = 'zhangsan';

2)双引号字符型注入

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

select * from user where username = "zhangsan";

3)带有括号的注入

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

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

a. 数值型+括号的注入

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

select * from user where id = (1);
select * from user where id = ((1));
包裹多个括号……

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

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

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

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

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

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

三、其他类型

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

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

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

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

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

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


http://chatgpt.dhexx.cn/article/WIZlLOkR.shtml

相关文章

什么是SQL注入?

有人的地方就有江湖,有数据库存在的地方就可能存在 SQL 注入漏洞。 什么是SQL 注入? SQL 注入是一种非常常见的数据库攻击手段,SQL 注入漏洞也是网络世界中最普遍的漏洞 之一。大家也许都听过某某学长通过攻击学校数据库修改自己成绩的事情…

sql注入攻击的原理(sql注入攻击防范)

SQL 注入(SQLi)是一种可执行恶意 SQL 语句的注入攻击。这些 SQL 语句可控制网站背后的数据库服务。攻击者可利用 SQL 漏洞绕过网站已有的安全措施。他们可绕过网站的身份认证和授权并访问整个 SQL 数据库的数据。他们也可利用 SQL 注入对数据进行增加、修…

SQL注入的一般过程

SQL注入的一般过程 概述SQL注入的步骤一道例题总结 概述 SQL注入是指web应用程序对用户输入数据的合法性没有判断或过滤不严,攻击者可以在web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句,在管理员不知情的情况下实现非法操作,以…

细说——SQL注入

目录 SQL是什么?什么是SQL注入漏洞原理漏洞原因为什么会有SQL注入注⼊点可能存在的位置漏洞危害提交方法判断注入点判断字符型还是数字型sql注入绕过获取网站路径SQL 注入读写文件1. 数据库支持文件读写2. 当前用户具有文件权限3. 知道文件绝对路径 查询方式及报错盲…

什么是SQL注入

什么是sql注入? 既然你会来看这篇文章,说明你和写这篇文章时的我一样,是个安全小白。不管你是以何种原因想要了解“什么是sql注入”,我都希望这篇文章尽可能地会给你一点收获。 两个通俗的概念 SQL 注入就是指 web应用程序对用户…

SQL注入(一)—— sql手动注入实操

SQL SQL注入sql 注入的核心 SQL 手注的一般流程判断注入点 —— 第一步判断字段数 —— 第二步判断回显点 —— 第三步查询相关内容 —— 第四步判断库名判断表名判断列名查询具体信息 总结 SQL注入 SQL注入攻击是目前web应用网络攻击中最常见的手段之一,曾被冠以 “…

【SQL注入-01】SQL语句基础及SQL注入漏洞原理及分类

目录 1 SQL注入概述1.1 SQL注入简介1.2 SQL注入原理(掌握)1.3 SQL注入漏洞的危害(掌握) 2 SQL注入漏洞分类2.1 注入位置分类(掌握)2.2 注入数据类型分类(掌握)2.3 注入手法分类&…

SQL注入详解(全网最全,万字长文)

漏洞原因 一些概念: SQL:用于数据库中的标准数据查询语言。 web分为前端和后端,前端负责进行展示,后端负责处理来自前端的请求并提供前端展示的资源。 而数据库就是存储资源的地方。 而服务器获取数据的方法就是使用SQL语句进…

sql注入基础原理(超详细)

一、Sql注入简介 Sql 注入攻击是通过将恶意的 Sql 查询或添加语句插入到应用的输入参数中,再在后台 Sql 服务器上解析执行进行的攻击,它目前黑客对数据库进行攻击的最常用手段之一。 二、Web 程序三层架构 三层架构(3-tier architecture) 通常意义上就…

数据库存储过程语法

mysql 5.0存储过程学习总结 一.创建存储过程 1.基本语法: create procedure sp_name() begin ……… end 2.参数传递 二.调用存储过程 1.基本语法:call sp_name() 注意:存储过程名称后面必须加括号,哪怕该存储过程没有参数传递…

存储过程语法--变量

目录 实例演示 定义默认值并使用 定义赋值再使用 定义2变量,通过查询表内数据进行赋值并使用 定义变量declare 变量名 数据类型 [default 默认值];变量赋值方式一set 变量名 变量值;变量赋值方式二select 列名 into 变量名 from 表名 [where 条件]; 实例演示 定义…

mysql 5.0存储过程(包括语法,符号)

一.创建存储过程 1.基本语法: create procedure sp_name() begin ……… end 2.参数传递 二.调用存储过程 1.基本语法:call sp_name() 注意:存储过程名称后面必须加括号,哪怕该存储过程没有参数传递 三.删除存储过程 1.基本语法&a…

Oracle存储过程语法学习

Oracle存储过程: 1.1 第一个存储过程 --创建存储过程 create or replace procedure proc1( p_para1 varchar2, p_para2 out varchar2, p_para3 in out varchar2 )as v_name varchar2(20); begin v_name : 张三; p_para3 : v_name; …

sql存储过程语法详解

一、定义变量 使用关键字declare申明变量: declare 变量名 变量类型 /*简单赋值*/declare a intset a5print a/*select赋值*/declare b nvarchar(10) select b stu_name from dbo.student where stu_id6 print b/*update赋值*/declare c nvarchar(10) upd…

MySQL常用操作之创建存储过程语法详解

MySQL常用操作之创建存储过程语法详解 前言简介语法创建结构变量结构入参变量和出参变量流程控制判断(IF 语句)判断(CASE 语句)循环(LOOP 语句)循环(WHILE 语句)循环(REPEAT 语句)再次循环(ITERATE 语句) 总结参考链接 前言 场景介绍 作为一名Java搬运工,实际开发中…

Oracle 存储过程语法

Oracle 存储过程语法 1. 创建表(测试数据准备) -- 创建用户表 create table TT_USER (USERID NUMBER(10),USERNAME VARCHAR2(255),PASSWORD VARCHAR2(255),SEX VARCHAR2(1) );INSERT INTO TT_USER VALUES (101, zhang, 111, 1); INSERT INTO TT…

mysql存储过程基本语法

本文来说下mysql存储过程基本语法 文章目录 基本语法使用实例变量的使用变量定义declare语句变量赋值用户变量 存储过程的参数in 输入参数out 输出参数inout输入输出参数 本文小结 基本语法 存储过程就是具有名字的一段代码,用来完成一个特定的功能。创建的存储过程…

Oracle存储过程基本语法

后来者居上,不是easy的事情 尤其技术类work,更加如此。都是have one 投入的过程的。尤其开发,还是属于技术壁垒挺高的行业。 创建基本的存储过程 1 CREATE OR REPLACE PROCEDURE MyProName IS 2 BEGIN 3 NULL; 4 END; 行1:CREATE OR REPL…

存储过程常见语法

存储过程常见语法 一、存储过程的概念: 1、存储过程Procedure是一组为了完成特定功能的SQL语句集合,经编译后存储在数据库中,用户通过指定存储过程的名称并给出参数来执行 2、存储过程中可以包含逻辑控制语句和数据操纵语句,它可以接受参数…

存储过程的语法讲解

在上一篇文章:别再说不知道什么是存储过程和存储函数了 中简单的介绍了存储过程和存储函数以及其使用。其实存储过程是可以进行编程的,所以可以和其他的编程语言一样使用变量、表达式以及控制结构进行编程,从而实现一些复杂和有用的功能。这篇…