news 2026/1/2 12:57:16

初步了解数据库,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进行投诉反馈,一经查实,立即删除!
网站建设 2025/12/13 18:27:40

PDFKit跨平台字体兼容性终极解决方案:完整指南

PDFKit跨平台字体兼容性终极解决方案&#xff1a;完整指南 【免费下载链接】pdfkit 项目地址: https://gitcode.com/gh_mirrors/pdf/pdfkit PDFKit作为Node.js生态中功能强大的PDF生成库&#xff0c;在实际跨平台部署中常常面临字体兼容性挑战。本文将提供一套完整的解…

作者头像 李华
网站建设 2025/12/13 18:27:00

三相维也纳整流器仿真手记

三相维也纳整流器的仿真模型。控制算法采用电压和电流双闭环控制。外部电压环路为PI控制器&#xff0c;内部电流环路为bang bang滞后控制器。 网侧单位功率因数运行&#xff0c;电网电流谐波非常小。最近在实验室折腾维也纳整流器的仿真模型&#xff0c;这拓扑结构确实有点意思…

作者头像 李华
网站建设 2025/12/20 5:57:21

BootstrapBlazor终极指南:快速构建现代化企业级应用

BootstrapBlazor终极指南&#xff1a;快速构建现代化企业级应用 【免费下载链接】BootstrapBlazor 项目地址: https://gitcode.com/gh_mirrors/bo/BootstrapBlazor BootstrapBlazor是基于Blazor和Bootstrap的开源UI组件库&#xff0c;为企业级应用开发提供了一套完整的…

作者头像 李华
网站建设 2025/12/26 2:31:26

【后端】【架构】企业服务治理平台架构:从0到1构建统一治理方案

&#x1f4d6;目录1. 背景与痛点&#xff1a;为什么需要企业服务治理&#xff1f;2. 企业服务治理的定义与核心目标2.1 核心定义2.2 大白话解释2.3 关键目标3. 传统架构的痛点与困境3.1 烟囱式系统3.2 调用混乱3.3 权限管理低效3.4 缺乏监控4. 5大核心疑问与解决方案4.1 疑问1&…

作者头像 李华
网站建设 2025/12/13 18:16:14

当下的网络安全行业前景到底怎么样?还能入行分蛋糕吗?

常听到很多人不知道学习网络安全能做什么&#xff0c;发展前景好吗&#xff1f;今天我就在这里给大家介绍一下。网络安全作为目前比较火的朝阳行业&#xff0c;人才缺口非常大 先说结论&#xff0c;目前网络安全的前景还是很不错的 作为一个有丰富 Web 安全攻防、渗透领域老工…

作者头像 李华