news 2026/4/18 6:57:37

初步了解数据库,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/18 5:40:33

ComfyUI在宠物形象定制服务中的商业化运作模式

ComfyUI在宠物形象定制服务中的商业化运作模式 如今&#xff0c;越来越多的宠物主人希望为自家毛孩子打造独一无二的艺术形象——从卡通头像到赛博朋克战士&#xff0c;甚至登上专属日历封面。这种个性化需求背后&#xff0c;隐藏着一个正在快速崛起的AIGC商业赛道&#xff1a;…

作者头像 李华
网站建设 2026/4/16 17:30:30

永磁同步电机无传感器控制算法:基于改进卡尔曼滤波速度观测器Simulink模型的高精度实现与普...

永磁同步电机的无传感器控制算法。 基于永磁同步电机&#xff08;PMSM&#xff09;的改进的卡尔曼滤波速度观测器simulink模型&#xff1b;可与普通卡尔曼滤波进行比对&#xff0c;精度大大提高。 永磁同步电机无传感器控制最头疼的就是转速观测。传统卡尔曼滤波虽然能玩&…

作者头像 李华
网站建设 2026/4/18 6:34:56

终极指南:如何快速安装Tabby终端提升开发效率

终极指南&#xff1a;如何快速安装Tabby终端提升开发效率 【免费下载链接】Tabby终端工具64位安装包 Tabby是一款功能强大的终端工具&#xff0c;专为开发者设计&#xff0c;集成了多种终端仿真功能&#xff0c;提供便捷高效的命令行操作体验。此版本为Windows 64位系统量身打造…

作者头像 李华
网站建设 2026/4/18 6:34:52

Git LFS终极安装方案:告别大文件版本控制难题

Git LFS终极安装方案&#xff1a;告别大文件版本控制难题 【免费下载链接】git-lfs Git extension for versioning large files 项目地址: https://gitcode.com/gh_mirrors/gi/git-lfs 你是否曾经因为Git仓库中存放了大型设计文件、数据集或二进制包而导致仓库体积爆炸、…

作者头像 李华
网站建设 2026/4/10 18:56:05

HeyGem.ai数字人视频生成平台:Linux环境下的全新体验

HeyGem.ai数字人视频生成平台&#xff1a;Linux环境下的全新体验 【免费下载链接】HeyGem.ai 项目地址: https://gitcode.com/GitHub_Trending/he/HeyGem.ai 还在为数字人视频制作只能在Windows系统上运行而烦恼吗&#xff1f;&#x1f914; 现在&#xff0c;HeyGem.ai…

作者头像 李华