SQL Injection | MySQL 数据库概述

news2024/11/25 16:47:53

关注这个漏洞的其他相关笔记:SQL 注入漏洞 - 学习手册-CSDN博客

0x01:MySQL 数据库简介

MySQL 是一个流行的关系型数据库管理系统(RDBMS),它基于 SQL (Structured Query Language)进行操作。MySQL 是由瑞典 MySQL AB 公司开发的,后来被 Sun Microsystems 收购,最终称为 Oracle 公司的产品。它是一个开源项目,遵循 GNU 通用公共许可证(GPL)发布,同时也提供了商业许可。

0x0101:MySQL 数据库特点

以下是 MySQL 的一些关键特点:

  • 开源性: MySQL 是开源的,这意味着你可以免费下载和使用它,甚至可以修改源代码以满足需求。

  • 跨平台: MySQL 可以在多种操作系统上运行,包括 Linux、Windows、MacOS 等。

  • 高性能: MySQL 以其高性能和可靠性而闻名,适用于处理大量数据和高并发请求。

  • 安全性: MySQL 提供了强大的数据加密和访问控制功能,以保护数据不被未授权访问。

  • 灵活性: MySQL 支持多种数据类型,包括数值、日期和时间、字符串等,并且可以存储大型对象如图片和视频。

  • 可扩展性: MySQL 具有良好的可扩展性,可以通过主从复制、分片和分区等技术来实现对数据的扩展,从而提高系统的高可用性和高性能。

  • 支持多种变成语言: MySQL 支持多种编程语言进行开发,如 C、C++、Java、Python 等,这使得开发者可以在不同的平台上使用 MySQL 进行开发。

0x0102:MySQL 数据库应用场景

MySQL 在多种场景下被广泛使用,包括但不限于以下几种情况:

  • Web 应用: MySQL 是许多 Web 应用的首选数据库系统,特别是于 PHP、Python、Java 等后端技术结合使用。许多流行的 Web 框架和 CMS(内容管理系统),如 WordPress、Drupal 等,都支持 MySQL 作为其后端数据库。

  • 电子商务: 在电子商务网站中,MySQL 用于存储用户信息、产品信息、订单详情等关键数据。由于 MySQL 具有高性能和可扩展性,因此它可以轻松处理大量并发请求和交易数据。

  • 企业应用: 许多企业使用 MySQL 来构建和管理其内部系统,如 ERP(企业资源计划)、CRM(客户关系管理)和 BI(商业智能)系统等。这些系统需要存储、处理和查询大量数据,而 MySQL 提供了可靠的性能和安全性。

  • 数据分析: 虽然 MySQL 不是一个专门的数据仓库或大数据分析平台,但它仍然可以用于存储和分析结构化数据。许多组织使用 MySQL 作为其数据仓库的一部分,并使用 SQL 查询来提取和分析数据。

  1. 移动应用: 随着移动应用的普及,越来越多的开发者选择使用 MySQL 作为其后端数据库。通过 REST API 或其他技术,移动应用可以与 MySQL 数据库进行交互,实现用户认证、数据存储和检索等功能。

总而言之,只要你想将大量数据找个地方进行存储,并想要随时查询和分析这些数据,MySQL 数据库都是一个不错的选择。

0x02:MySQL 数据库详解

由于本文是 SQL 注入的前导知识,所以下面只介绍在注入 MySQL 数据库时,我们需要了解的相关内容。

0x0201:MySQL 数据库层级关系

我们通常将提供数据库服务的服务器,叫做 “数据库服务器”。在一个数据库服务器中,通常存在多个数据库,每个数据库中含有多张数据表,一张数据表中又有多个字段,每个字段中存储的才是我们需要的数据。

数据库服务器的这种结构很容易就让我们和 Excel 表格联系起来:一个 Excel 文件就是一个数据库,在一个 Excel 文件中我们又可以新建多张表,这就类似于数据表,每个表中又有:用户名、密码、手机号 ... 这样的字段,每个字段下面又会存储对应的数据。

0x0202:MySQL 系统库

在高版本(5.0 及以上)的 MySQL 数据库中存在四个系统库,分别为:information_schemaperformace_schemamysql、和 sys,它们提供了访问数据库元数据的方式。

元数据:关于数据库的数据,如数据库的库名,每个数据库中的表名、字段名等信息。

1. 系统库 - Information_schema

该系统库是信息数据库,其中保存着关于 MySQL 服务器所维护的所有其他数据库的信息。例如数据库或表的名称、列的数据类型或者访问权限、在 Web 渗透过程中有着举足轻重的地位。

1.1 SCHEMATA 表 - SCHEMA_NAME

SCHEMATA 表中保存了已有的所有数据库的信息。

该表中存储了 MySQL 实例中所有数据库的信息,show databases; 的结果就取自于此表:

mysql> select * from information_schema.schemata;
 +--------------+--------------------+----------------------------+------------------------+----------+
 | CATALOG_NAME | SCHEMA_NAME        | DEFAULT_CHARACTER_SET_NAME | DEFAULT_COLLATION_NAME | SQL_PATH |
 +--------------+--------------------+----------------------------+------------------------+----------+
 | def          | information_schema | utf8                       | utf8_general_ci        | NULL     |
 | def          | challenges         | gbk                        | gbk_chinese_ci         | NULL     |
 | def          | dvwa               | utf8                       | utf8_unicode_ci        | NULL     |
 | def          | mysql              | latin1                     | latin1_swedish_ci      | NULL     |
 | def          | performance_schema | utf8                       | utf8_general_ci        | NULL     |
 | def          | pikachu            | utf8                       | utf8_unicode_ci        | NULL     |
 | def          | security           | gbk                        | gbk_chinese_ci         | NULL     |
 | def          | sys                | utf8                       | utf8_general_ci        | NULL     |
 +--------------+--------------------+----------------------------+------------------------+----------+
 8 rows in set (0.00 sec)
1.2 TABLES 表 - TABLE_NAME

TABLES 表中保存了所有已有的数据表的信息。

该表中存储了已有数据库中所创建的所有表的信息,可以通过此表,获取每个数据库下面已有的表名:

mysql> select * from information_schema.tables;
 +---------------+--------------------+------------------------------------------------------+-------------+--------------------+---------+------------+------------+----------------+-------------+--------------------+--------------+-----------+----------------+---------------------+---------------------+------------+-------------------+----------+--------------------+-----------------------------------------+
 | TABLE_CATALOG | TABLE_SCHEMA       | TABLE_NAME                                           | TABLE_TYPE  | ENGINE             | VERSION | ROW_FORMAT | TABLE_ROWS | AVG_ROW_LENGTH | DATA_LENGTH | MAX_DATA_LENGTH    | INDEX_LENGTH | DATA_FREE | AUTO_INCREMENT | CREATE_TIME         | UPDATE_TIME         | CHECK_TIME | TABLE_COLLATION   | CHECKSUM | CREATE_OPTIONS     | TABLE_COMMENT                           |
 +---------------+--------------------+------------------------------------------------------+-------------+--------------------+---------+------------+------------+----------------+-------------+--------------------+--------------+-----------+----------------+---------------------+---------------------+------------+-------------------+----------+--------------------+-----------------------------------------+
 | def           | information_schema | CHARACTER_SETS                                       | SYSTEM VIEW | MEMORY             |      10 | Fixed      |       NULL |            384 |           0 |           65739264 |            0 |                 0 |           NULL | 2023-08-18 08:01:31 | NULL                | NULL       | utf8_general_ci   |     NULL | max_rows=174762    |                                         |
 | def           | information_schema | COLLATIONS                                           | SYSTEM VIEW | MEMORY             |      10 | Fixed      |       NULL |            231 |           0 |           66819522 |            0 |                 0 |           NULL | 2023-08-18 08:01:31 | NULL                | NULL       | utf8_general_ci   |     NULL | max_rows=290514    |                                         |
 | def           | information_schema | COLLATION_CHARACTER_SET_APPLICABILITY                | SYSTEM VIEW | MEMORY             |      10 | Fixed      |       NULL |            195 |           0 |           65431080 |            0 |                 0 |           NULL | 2023-08-18 08:01:31 | NULL                | NULL       | utf8_general_ci   |     NULL | max_rows=344148    |                                         |
 | def           | information_schema | COLUMNS                                              | SYSTEM VIEW | InnoDB             |      10 | Dynamic    |       NULL |              0 |       16384 |                  0 |            0 |   8388608 |           NULL | NULL                | NULL                | NULL       | utf8_general_ci   |     NULL | max_rows=11156     |                                         |
 | def           | information_schema | COLUMN_PRIVILEGES                                    | SYSTEM VIEW | MEMORY             |      10 | Fixed      |       NULL |           2565 |           0 |           67028580 |            0 |                 0 |           NULL | 2023-08-18 08:01:31 | NULL                | NULL       | utf8_general_ci   |     NULL | max_rows=26163     |                                         |
 | def           | information_schema | ENGINES                                              | SYSTEM VIEW | MEMORY             |      10 | Fixed      |       NULL |            490 |           0 |           66297000 |            0 |                 0 |           NULL | 2023-08-18 08:01:31 | NULL                | NULL       | utf8_general_ci   |     NULL | max_rows=136956    |                                         |
 | def           | information_schema | EVENTS                                               | SYSTEM VIEW | InnoDB             |      10 | Dynamic    |       NULL |              0 |       16384 |                  0 |            0 |   8388608 |           NULL | NULL                | NULL                | NULL       | utf8_general_ci   |     NULL | max_rows=2473      |                                         |
 | def           | information_schema | FILES                                                | SYSTEM VIEW | MEMORY                   |      10 | Fixed      |       NULL |          14468 |           0 |           67088116 |            0 |                   0 |           NULL | 2023-08-18 08:01:31 | NULL                | NULL       | utf8_general_ci   |     NULL | max_rows=4638      |                                         |
 | def           | information_schema | GLOBAL_STATUS                                        | SYSTEM VIEW | MEMORY             |      10 | Fixed      |       NULL |           3268 |           0 |           67026680 |            0 |                 0 |           NULL | 2023-08-18 08:01:31 | NULL                | NULL       | utf8_general_ci   |     NULL | max_rows=20535     |                                         |
 | def           | information_schema | GLOBAL_VARIABLES                                     | SYSTEM VIEW | MEMORY             |      10 | Fixed      |       NULL |           3268 |           0 |           67026680 |            0 |                 0 |           NULL | 2023-08-18 08:01:31 | NULL                | NULL       | utf8_general_ci   |     NULL | max_rows=20535     |                                         |
 | def           | information_schema | KEY_COLUMN_USAGE                                     | SYSTEM VIEW | MEMORY             |      10 | Fixed      |       NULL |           4637 |           0 |           67064931 |            0 |                 0 |           NULL | 2023-08-18 08:01:31 | NULL                | NULL       | utf8_general_ci   |     NULL | max_rows=14472     |                                         |
 | def           | information_schema | OPTIMIZER_TRACE                                      | SYSTEM VIEW | InnoDB             |      10 | Dynamic    |       NULL |              0 |       16384 |                  0 |            0 |   8388608 |           NULL | NULL                | NULL                | NULL       | utf8_general_ci   |     NULL | max_rows=2314098   |                                         |
 | def           | information_schema | PARAMETERS                                           | SYSTEM VIEW | InnoDB             |      10 | Dynamic    |       NULL |              0 |       16384 |                  0 |            0 |   8388608 |           NULL | NULL                | NULL                | NULL       | utf8_general_ci   |     NULL | max_rows=24087     |                                         |
 -> 后面省略
 +---------------+--------------------+------------------------------------------------------+-------------+--------------------+---------+------------+------------+----------------+-------------+--------------------+--------------+-----------+----------------+---------------------+---------------------+------------+-------------------+----------+--------------------+-----------------------------------------+
 292 rows in set (0.07 sec)
1.3 COLUMNS 表 - COLUMN_NAME

COLUMNS 表中存储了数据库中所有表的字段信息。

该表中提供了每个数据库中的列(字段)信息,详细描述了某张表的所有列以及每个列的信息:

mysql> select * from information_schema.columns limit 0,2;
 +---------------+--------------------+----------------+----------------------+------------------+----------------+-------------+-----------+--------------------------+------------------------+-------------------+---------------+--------------------+--------------------+-----------------+-------------+------------+-------+------------+----------------+-----------------------+
 | TABLE_CATALOG | TABLE_SCHEMA       | TABLE_NAME     | COLUMN_NAME          | ORDINAL_POSITION | COLUMN_DEFAULT | IS_NULLABLE | DATA_TYPE | CHARACTER_MAXIMUM_LENGTH | CHARACTER_OCTET_LENGTH | NUMERIC_PRECISION | NUMERIC_SCALE | DATETIME_PRECISION | CHARACTER_SET_NAME | COLLATION_NAME  | COLUMN_TYPE | COLUMN_KEY | EXTRA | PRIVILEGES | COLUMN_COMMENT | GENERATION_EXPRESSION |
 +---------------+--------------------+----------------+----------------------+------------------+----------------+-------------+-----------+--------------------------+------------------------+-------------------+---------------+--------------------+--------------------+-----------------+-------------+------------+-------+------------+----------------+-----------------------+
 | def           | information_schema | CHARACTER_SETS | CHARACTER_SET_NAME   |                1 |                | NO          | varchar   |                       32 |                     96 |              NULL |          NULL |                           NULL | utf8               | utf8_general_ci | varchar(32) |            |       | select     |                |                       |
 | def           | information_schema | CHARACTER_SETS | DEFAULT_COLLATE_NAME |                2 |                | NO          | varchar   |                       32 |                     96 |              NULL |          NULL |                         NULL | utf8               | utf8_general_ci | varchar(32) |            |       | select     |                |                       |
 +---------------+--------------------+----------------+----------------------+------------------+----------------+-------------+-----------+--------------------------+------------------------+-------------------+---------------+--------------------+--------------------+-----------------+-------------+------------+-------+------------+----------------+-----------------------+
 2 rows in set (0.07 sec)

2. 系统库 - Performance_schema

该系统库是 MySQL 5.5 新增的一个数据库,主要用于收集和存储与数据库性能相关的统计信息和指标。它主要用于帮助运维人员对数据库性能进行监控、调优和故障排查。

3. 系统库 - Mysql

该库是整个数据库体系中的核心数据库,类似于 SQL Server 中的 master 表,主要负责存储数据库的用户(账户)信息、权限设置、关键字等 MySQL 自己需要使用的控制和管理信息。该库不可以删除,如果你对 MySQL 不是很了解,请不要轻易修改这个数据库里面的信息。

常用举例:在 mysql.user 表中修改 root 用户的密码。

4. 系统库 - Sys

sys 库是 MySQL 5.7 新增加的系统数据库,该库是专门为数据库管理员(DBA)设计的辅助库,旨在帮助用户更轻松地分析和解决数据库性能问题。

该库基于 performance_schema,通过各种预定义的视图和函数,简化了性能数据的访问和分析过程。通过使用 sys 系统库,DBA 可以更快获得有价值的性能信息,从而更好地管理和调优 MySQL 实例的性能和行为。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2207676.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Django项目的创建及说明(详细图解版)

Django项目的创建及说明 1、安装Django2、创建项目2.1、利用终端创建项目2.2、利用Pycharm企业版创建项目 3、默认文件介绍 1、安装Django 在终端输入下述命令行。 pip install django安装成功后执行如下命令查看Django是否安装好,若正确显示出Django版本号则安装…

[实时计算flink]应用场景

本文将以部门场景和技术领域场景为例,为您介绍实时计算Flink版的大数据是实时化场景。 背景信息 作为流式计算引擎,Flink可以广泛应用于实时数据处理领域,例如ECS在线服务日志,IoT场景下传感器数据等。同时Flink还能订阅云上数据…

进程的那些事--进程间的通信(重点说明管道和共享内存)

目录 前言 一、初始进程间通信 二、管道 1.匿名管道 2.命名管道 三、共享内存 四、消息队列(了解) 五、信号量(了解) 前言 提示:这里可以添加本文要记录的大概内容: 进程是一个能够独立运行&#…

什么情况下数据库和缓存不一致?

首先,在非并发的场景中,出现不一致的问题大家都能比较容易的理解,因为缓存的操作和数据库的操作是存在一定的时间差的。而生两个操作是没办法保证原子些的,也就是说,是有可能一个操作功,一个操作失败的。所…

C语言-数据结构 折半查找

在折半查找中,刚开始学可能会在下标处产生困惑,例如奇数个长度的数组怎么处理,偶数个长度的数组怎么处理,不需要修改代码吗?并且下标我从1开始算和0开始算影响代码吗?其实都可以用一样的代码,产…

【含文档】基于Springboot+Vue的失物招领系统(含源码+数据库+lw)

1.开发环境 开发系统:Windows10/11 架构模式:MVC/前后端分离 JDK版本: Java JDK1.8 开发工具:IDEA 数据库版本: mysql5.7或8.0 数据库可视化工具: navicat 服务器: SpringBoot自带 apache tomcat 主要技术: Java,Springboot,mybatis,mysql,vue 2.视频演示地址 3.功能 系统定…

如何替换OCP节点(一):使用oat | OceanBase应用实践

前言: OceanBase Cloud Platform(简称OCP),是 OceanBase数据库的专属企业级数据库管理平台。 在实际生产环境中,OCP的安装通常是第一步,先搭建OCP平台,进而依赖OCP来创建、管理和监控我们的生…

docker升级mysql

一、首选备份原数据库所有数据 二、在Docker中查看正在运行的MySQL容器名称,可以使用以下命令: docker ps --filter "namemysql" 三、查看当前docker中正在运行mysql的版本 docker exec -it qgz-mysql mysql -V 可以看到当前运行的版本是8.…

数据传输——差错控制

一、检错纠错 1、通信链路不是完全理想的,在传输的过程中可能会产生比特差错。 2、误码率:传输错误的比特占所传输比特总数的比率。 3、检错:能自动发现差错。 4、纠错:不仅能发现差错而且能自动纠正差错。 5、码字(codeword…

Selenium打开外部应用程序的弹窗处理

问题 selenium自动化操作页面跳转到外部应用程序进行下载等操作,各种窗口处理方式无法解决 原因 该窗口属于浏览器窗口,与访问页面无关(已经脱离页面操作层面) 解决 selenium启动浏览器时,对浏览器进行相关窗口设…

Elasticsearch的安装与配置

注意:elasticsearch 禁止安装在/root路径下! 1、创建用户组 groupadd elastic 2、创建用户 useradd es -d /home/es -g elastic echo es | passwd es --stdin 3、给新创建的用户进行授权 chown -R es:elastic /home/es chmod -R 775 /home/es 4…

sklearn机器学习实战——支持向量机四种核函数分类任务全过程(附完整代码和结果图)

sklearn机器学习实战——支持向量机四种核函数分类任务全过程(附完整代码和结果图) 关于作者 作者:小白熊 作者简介:精通python、matlab、c#语言,擅长机器学习,深度学习,机器视觉,目…

Nginx反向代理配置与负载均衡配置

简介:整理自黑马程序员苍穹外卖的第11节 nginx是什么? nginx的好处 nginx反向代理配置方式 nginx负载均衡的配置方式 nginx负责均衡策略

等保2.0测评 — WebSphere 中间件

查看版本信息: 登录websphere管理平台首页就能看到版本信息 可以进入\usr\IBM\WebSphere\AppServer\bin 下执行./versionInfo.sh查看版本 一、身份鉴别 a)应对登录的用户进行身份标识和鉴别,身份标识具有唯一性,身份鉴别信息具有…

如何使用printf实现整齐美观的输出?

在编程中,尤其是在涉及控制台输出的应用场景中,我们需要让输出的信息更加整齐美观。printf 是 C 语言中用于格式化输出的强大工具之一。通过合理的格式化控制符,我们可以轻松地控制输出的宽度、对齐方式、填充字符等,从而达到整齐…

RiproV9.0主题wordpress主题免扩展可二开PJ版/WordPress博客主题Ripro全解密无后门版本

🔥🎉 全新RiPro9.0开源版发布 —— 探索无限可能🚀🌐 今天,我很高兴能与大家分享一个重磅资源——RiPro9.0开源版!这不是一个普通的版本,而是一个经过精心打磨、全面解密的力作。🔍…

使用KEIL5,不复位MCU,调试到程序运行到卡住之处

文章目录 前言步骤1步骤2步骤3步骤4步骤5 前言 经常有朋友在开发中遇到这样的窘境,当单片机程序运行异常以后,由于调试信息做得并不是很全面,导致相应的问题场景非常难分析。当时的你肯定会叹息道:“要是我一直插着仿真器就好了,…

【Concept Sliders】通过拖到滑块来精确控制特定图像特征

Concept Sliders 是一种用于扩散模型(如 Stable Diffusion)的LoRA 适配器,允许用户在图像生成过程中对特定概念进行精细控制。与依赖提示词生成图像的传统方法不同,Concept Sliders 通过引入可调整的“滑块”,用户可以…

前端读取本地表格数据

vue3tsvite 无后端提供数据的情况下,前端读取本地表格数据,并将数据放入页面结构中 展示在网页中 记得先安装npm install xlsx 目录 read_xlsx.ts import * as XLSX from xlsx; //将行,列转换 function transformSheets(sheets: { [key: string]: any })…

技术架构的演进之路

技术架构的演进之路 我们以电商系统的技术架构发展为例 文章目录 1. 单体架构2. 应用数据分离架构3. 应用服务集群架构4. 读写分离、主从分离架构5. 冷热分离架构6. 垂直分库架构7. 微服务架构8. 容器编排架构 1. 单体架构 在前期用户访问量很少的时候,没有对性能、安全等提出…