news 2026/5/2 15:07:59

初步了解数据库,sql注入漏洞练习语句,搭建sql靶场

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
初步了解数据库,sql注入漏洞练习语句,搭建sql靶场

1.初步了解数据库

数据库是存储、组织和管理数据的系统,可以将其当成一个电子化的文件柜或图书馆,用于高效地存储、检索和管理大量信息。

1.核心概念:

结构化存储:数据以表格、文档等形式存放,而非随意堆放。

高效管理:通过数据库管理系统(DBMS,如MySQL、Oracle、MongoDB)实现数据的增删改查。

数据关联:支持建立数据间的关系(如订单与客户关联)

2.类型


关系型数据库 数据以表格形式存储,通过SQL操作,强调数据一致性(如MySQL、PostgreSQL) 银行交易、企业管理系统
非关系型数据库 灵活存储文档、键值对等,适合海量非结构化数据(如MongoDB、Redis) 社交网络、物联网数据
时序数据库 专为时间序列数据优化(如InfluxDB) 监控系统、传感器数据

3.为什么需要数据库

替代文件存储:避免手动处理Excel或文本文件的繁琐与错误。

处理大规模数据:支持百万级数据的高效查询。

保证数据完整性:如禁止重复学号等规则。

支持复杂应用:电商、社交平台等都依赖数据库后台。

2.初步了解sql注入漏洞

SQL注入是一种通过恶意SQL代码操纵后端数据库的攻击方式,是Web安全中最常见且危险的漏洞之一。

1.攻击原理

核心问题:将用户输入直接拼接到SQL查询中,未进行过滤或转义。

如登录账号,攻击者不需要密码即可登录

2.攻击类型


经典注入 通过单引号闭合语句 ' OR '1'='1
联合查询注入 使用 UNION 获取其他表数据 ' UNION SELECT username, password FROM users --
盲注 无显式错误,通过页面差异判断 ' AND 1=1 -- (正常) vs ' AND 1=2 -- (异常)
时间盲注 通过延时判断条件真假 ' AND IF(1=1, SLEEP(5), 0) --
堆叠查询 执行多条SQL语句(如MySQL) '; DROP TABLE users; --
二阶注入 数据先被存储,后触发 注册用户名 admin'-- ,后续操作时触发

3.练习sql语句

1.安装navicat

通过此教程进行下载

Navicat Premium 16 保姆级手把手 安装教程包含下载、安装、授权(附安装包)-CSDN博客

2.练习

点击连接打开mysql

这里采用某一练习进行练手,将以下全部复制

-- 创建数据库(如果不存在)

CREATE DATABASE IF NOT EXISTS student_grade_db;

USE student_grade_db;

-- 创建课程表(5门课,覆盖常见科目)

CREATE TABLE courses (

id INT AUTO_INCREMENT PRIMARY KEY,

course_name VARCHAR(50) NOT NULL

);

-- 创建学生表(30个真实感名字+班级+年龄)

CREATE TABLE students (

id INT AUTO_INCREMENT PRIMARY KEY,

name VARCHAR(50) NOT NULL,

age INT NOT NULL,

gender VARCHAR(10) NOT NULL,

class VARCHAR(20) NOT NULL

);

-- 创建成绩表(关联学生和课程,150条数据)

CREATE TABLE scores (

id INT AUTO_INCREMENT PRIMARY KEY,

student_id INT NOT NULL,

course_id INT NOT NULL,

score DECIMAL(5,2) NOT NULL,

FOREIGN KEY (student_id) REFERENCES students(id),

FOREIGN KEY (course_id) REFERENCES courses(id)

);

-- 插入课程数据(5门课,基础科目全齐)

INSERT INTO courses (course_name) VALUES

('Mathematics'),

('Chinese'),

('English'),

('Physics'),

('Chemistry');

-- 插入30个学生数据(名字/年龄/性别/班级随机分配,真实不塑料!)

INSERT INTO students (name, age, gender, class) VALUES

('张明', 19, 'Male', 'Computer Science 1'),

('李华', 20, 'Female', 'Computer Science 2'),

('王芳', 18, 'Female', 'IT Engineering 1'),

('刘伟', 21, 'Male', 'Computer Science 1'),

('陈静', 19, 'Female', 'IT Engineering 2'),

('杨洋', 20, 'Male', 'Computer Science 2'),

('黄丽', 19, 'Female', 'Computer Science 1'),

('周强', 22, 'Male', 'IT Engineering 1'),

('吴敏', 20, 'Female', 'Computer Science 2'),

('徐娜', 18, 'Female', 'IT Engineering 2'),

('孙浩', 20, 'Male', 'Computer Science 1'),

('马超', 21, 'Male', 'Computer Science 2'),

('朱婷', 19, 'Female', 'IT Engineering 1'),

('胡杰', 20, 'Male', 'IT Engineering 2'),

('林雪', 18, 'Female', 'Computer Science 1'),

('何亮', 22, 'Male', 'Computer Science 2'),

('高峰', 19, 'Male', 'IT Engineering 1'),

('郭静', 20, 'Female', 'IT Engineering 2'),

('韩梅', 19, 'Female', 'Computer Science 1'),

('谢敏', 20, 'Female', 'Computer Science 2'),

('邓伟', 21, 'Male', 'IT Engineering 1'),

('冯丽', 18, 'Female', 'IT Engineering 2'),

('曾强', 20, 'Male', 'Computer Science 1'),

('彭华', 19, 'Female', 'Computer Science 2'),

('颜强', 21, 'Male', 'IT Engineering 1'),

('潘丽', 20, 'Female', 'IT Engineering 2'),

('杜明', 22, 'Male', 'Computer Science 1'),

('丁芳', 19, 'Female', 'Computer Science 2'),

('董强', 20, 'Male', 'IT Engineering 1'),

('赵敏', 21, 'Female', 'IT Engineering 2');

-- 插入150条成绩数据(每学生5门课,分数有高有低,真实到能编故事!)

-- 重点:覆盖增删改查所有场景(比如查“物理不及格的”、按分数排序等)

INSERT INTO scores (student_id, course_id, score) VALUES

(1,1,85.5), (1,2,90.0), (1,3,78.5), (1,4,82.0), (1,5,88.5), -- 张明(学霸型)

(2,1,76.0), (2,2,85.0), (2,3,82.0), (2,4,79.5), (2,5,81.0), -- 李华(中等偏上)

(3,1,65.0), (3,2,70.0), (3,3,68.0), (3,4,62.0), (3,5,67.0), -- 王芳(挂科预警!)

(4,1,92.0), (4,2,88.0), (4,3,85.0), (4,4,90.0), (4,5,89.0), -- 刘伟(卷王)

(5,1,72.5), (5,2,75.0), (5,3,78.0), (5,4,74.5), (5,5,76.0), -- 陈静(稳如老狗)

(6,1,80.0), (6,2,84.0), (6,3,83.0), (6,4,81.0), (6,5,82.5), -- 杨洋(进步中)

(7,1,77.5), (7,2,81.0), (7,3,79.5), (7,4,76.0), (7,5,78.5), -- 黄丽(小透明)

(8,1,88.0), (8,2,92.0), (8,3,89.0), (8,4,91.0), (8,5,90.0), -- 周强(大佬)

(9,1,74.0), (9,2,78.0), (9,3,76.5), (9,4,73.0), (9,5,75.0), -- 吴敏(努力型)

(10,1,68.0), (10,2,72.0), (10,3,70.0), (10,4,65.0), (10,5,69.0), -- 徐娜(差点挂科)

(11,1,83.0), (11,2,86.0), (11,3,84.0), (11,4,82.0), (11,5,85.0), -- 孙浩(中上)

(12,1,79.0), (12,2,82.0), (12,3,80.0), (12,4,78.5), (12,5,81.0), -- 马超(稳)

(13,1,71.5), (13,2,74.0), (13,3,72.5), (13,4,70.0), (13,5,73.0), -- 朱婷(小进步)

(14,1,81.0), (14,2,83.0), (14,3,82.5), (14,4,80.0), (14,5,84.0), -- 胡杰(卷中卷)

(15,1,69.5), (15,2,73.0), (15,3,71.0), (15,4,67.5), (15,5,70.5), -- 林雪(差点挂科)

(16,1,90.0), (16,2,93.0), (16,3,91.0), (16,4,92.0), (16,5,94.0), -- 何亮(天花板)

(17,1,75.0), (17,2,77.0), (17,3,76.0), (17,4,74.0), (17,5,78.0), -- 高峰(中等)

(18,1,82.0), (18,2,85.0), (18,3,83.0), (18,4,81.5), (18,5,84.5), -- 郭静(优秀)

(19,1,78.0), (19,2,80.0), (19,3,79.0), (19,4,77.0), (19,5,81.0), -- 韩梅(小能手)

(20,1,84.5), (20,2,87.0), (20,3,86.0), (20,4,85.0), (20,5,88.0), -- 谢敏(学霸)

(21,1,67.0), (21,2,71.0), (21,3,69.0), (21,4,65.0), (21,5,68.0), -- 邓伟(危险边缘)

(22,1,73.0), (22,2,76.0), (22,3,74.0), (22,4,72.0), (22,5,75.0), -- 冯丽(稳)

(23,1,86.0), (23,2,89.0), (23,3,87.0), (23,4,85.0), (23,5,88.0), -- 曾强(卷王)

(24,1,77.5), (24,2,80.0), (24,3,78.5), (24,4,76.5), (24,5,79.5), -- 彭华(中等偏上)

(25,1,89.0), (25,2,91.0), (25,3,88.5), (25,4,90.0), (25,5,92.0), -- 颜强(大佬)

(26,1,74.5), (26,2,77.5), (26,3,75.0), (26,4,73.5), (26,5,76.5), -- 潘丽(小进步)

(27,1,92.5), (27,2,95.0), (27,3,93.0), (27,4,94.0), (27,5,96.0), -- 杜明(天花板2号)

(28,1,80.5), (28,2,83.5), (28,3,82.0), (28,4,81.0), (28,5,84.0), -- 丁芳(优秀)

(29,1,76.0), (29,2,79.0), (29,3,77.5), (29,4,75.0), (29,5,78.0), -- 董强(中等)

(30,1,83.0), (30,2,86.0), (30,3,84.5), (30,4,82.5), (30,5,85.5); -- 赵敏(稳如老狗)

新建连接后右击点击新建查询,点击运行。

1.比如查询19岁的姓名

输入SELECT name FROM students WHERE age = 19;结果如图

2.查出班级是"Computer Science 1"的学生姓名。

SELECT name FROM students WHERE class = 'Computer Science 1';

3.按年龄从小到大排,只看前3名

SELECT name, age FROM students ORDER BY age ASC LIMIT 3;

4.以李开头

SELECT name FROM students WHERE name LIKE '李%';

5.查出女生且年龄小于20岁的学生姓名

SELECT name FROM students WHERE gender = 'Female' AND age < 20;

6.查出英语成绩(course_id=3)高于90分的学生姓名。

SELECT s.name

FROM students s

JOIN scores sc ON s.id = sc.student_id

WHERE sc.course_id = 3 AND sc.score > 90;

PS:靶场在我最早的文章中有教程大家可以看一看

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 0:24:38

初尝PLL设计:从1.28GHz整数分频锁相环谈起

整数分频锁相环PLL&#xff0c;输出频率1.28GHz。 smic55nm工艺&#xff0c;适合初学者学习。最近&#xff0c;我一直在探索锁相环&#xff08;PLL&#xff09;的设计&#xff0c;尤其是在SMIC 55nm工艺下的实现。作为一个刚入门的电路设计小白&#xff0c;PLL这个概念对我来说…

作者头像 李华
网站建设 2026/4/30 2:32:28

2026年速通前端面试题1000道,适用于99%的中大厂。少走弯路

整理了2025年最全的Web前端高频面试题&#xff0c;JavaScript、CSS、ES6、vue2、Vue3、React、Node.JS、小程序、HTTP、TypeScript、Webpack、Git、Linux、算法与数据结构、设计模式等等 题库共 1000 道&#xff0c;带全部答案&#xff0c;非常齐全&#xff01; 因为文件太多&a…

作者头像 李华
网站建设 2026/4/30 6:32:26

扩散模型实战指南:从零基础到行业应用的完整解决方案

扩散模型实战指南&#xff1a;从零基础到行业应用的完整解决方案 【免费下载链接】Awesome-Diffusion-Models 项目地址: https://gitcode.com/gh_mirrors/awe/Awesome-Diffusion-Models 你是否曾为扩散模型的神秘感而却步&#xff1f;或者在实际应用中遇到了各种技术难…

作者头像 李华
网站建设 2026/5/1 0:14:10

月初面了十多个前端开发,感觉天都塌了...

不是说他们基础不好。相反&#xff0c;很多人对React生命周期 、 Vue响应式原理甚至 Webpack配置项都能对答如流。真正让我感到“天塌了”的瞬间&#xff0c;是在连续几个候选人面对同一个看似简单的场景题时&#xff0c;表现出的集体性失语。 题目大概是这样的&#xff1a; “…

作者头像 李华
网站建设 2026/5/1 6:05:01

Tarjan全家桶系列--强联通分量

强联通分量(SCC) 有向图中的一个​​极大子图​&#xff0c;其中任意两个节点 u 和 v 都​​互相可达​&#xff08;即存在 u→v和 v→u的路径&#xff09;&#xff0c;则这个子图为一个强联通分量 Tarjan 算法基于深度优先搜索&#xff08;DFS&#xff09;&#xff0c;利用 DF…

作者头像 李华
网站建设 2026/5/1 5:59:55

手把手教你学Simulink——基于高比例可再生能源渗透的复杂电网建模场景实例:含高比例风电接入的弱电网稳定性分析与仿真

目录 手把手教你学Simulink ——基于高比例可再生能源渗透的复杂电网建模场景实例:含高比例风电接入的弱电网稳定性分析与仿真 一、背景介绍 二、系统结构设计 三、建模过程详解 第一步:创建新 Simulink 项目 第二步:添加主要模块 1. 风电场模型 2. 弱电网模型 3. …

作者头像 李华