文章目录
- 前言
- 什么是数据库
- 创建数据库操作环境-安装数据库
- 数据库基础-命令讲解
-
- SQL基础命令
- SQL注入常用语法----SELECT特殊查询用法
- SQL注入常用语法----WHERE条件用法
- SQL注入常用语法----CREATE创建库、表后的相关用法
-
- 创建库
- 创建表
- SQL注入常用语法—特殊表的使用
-
- information_schema.SCHEMATA表
- information_schema.TABLES表
前言
本文以SQL注入为核心,讲解MySQL数据库的基本知识,和在SQL注入过程中可能会用到的部分重要语法。
什么是数据库
数据库是“按照数据结构来组织、存储和管理数据的仓库”。是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。
关系型数据库
关系型数据库是基于关系模型的数据库系统,使用表格(表)来组织数据。数据以行和列的形式存储在表中,每个表代表一个实体或关系,每一行表示一个数据记录,每一列表示记录的属性。关系型数据库使用结构化查询语言(SQL)进行数据的查询和操作。
关系型数据库中表与表之间是有很多复杂的关联关系的
常见的关系型数据库有 MySQL,Oracle, PostgreSQL,SQL Server等。
非关系型数据库
非关系型数据库是一类不使用传统关系模型的数据库系统,它们使用不同的数据模型和存储方式来处理数据。非关系型数据库主要关注可扩展性、灵活性和性能等方面的需求。
常见的关系型数据库有 Redis,MongoDB, Cassandra,Neo4j等。
附: 数据库排名链接
创建数据库操作环境-安装数据库
- 以docker为例, 使用docker安装MySQL镜像
docker pull mysql:5.7

- 查看镜像是否安装成功,在仓库中看到刚刚拉取的mysql表明已经安装成功
docker images

- 创建并打开容器
docker run --name sql_inject -d -p 4001:3306 -e MYSQL_ROOT_PASSWORD=123456 5107333e08a8
命令解释:
MYSQL_ROOT_PASSWORD=123456将数据库密码设置为123456,账号为root
5107333e08a8是镜像ID,用于指定该容器的镜像,镜像ID可以从上一步(docker images)的IMAGE ID中获取

- 查看容器是否创建成功
docker ps

- 入容器环境
docker exec -it sql_inject /bin/bash
数据库基础-命令讲解
SQL基础命令
登录数据库
mysql -uroot -p

查看用户
select user,host from mysql.user;
root用户host为%, 代表可以使用远程连接登录,可以使用navicat等数据库工具远程登录操作

查看所有数据库
show databases;
information_schema库: 是信息数据库,其中保存着关于MySQL服务器所维护的所有其他数据库的信息比如数据库名,数据库表,表字段的数据类型与访问权限等。Web渗透过程中用途很大。
mysql 库: MySQL的核心数据库,主要负责存储数据库的用户、权限设置、 关键字等mysql自己需要使用的控制和管理信息。
performance_schema 库: 内存数据库,数据放在内存中直接操作的数据库。相对于磁盘,内存的数据读写速度要高出几个数量级,将数据保存在内存中相 比从磁盘上访问能够极大地提高应用的性能。
sys 库: 通过这个数据库数据库,可以查询谁使用了最多的资源 基于IP或是用户。哪张表被访问过最多等等信息。

查看表
show tables from information_schema;
SCHEMATA 表: 提供了当前MySQL实例中所有的数据库信息,show databases 结果取之此表
TABLES 表:提供了关于数据库中表的信息
COLUMNS 表: 提供了表中的列信息,详细描述了某张表的所有列已经每个列的信息

注释
第一种注释: -- “杠杠空格”, 注意有个空格!!!
第二种注释: #
SQL注入一般使用第一种, 有时候第二种可能会用不了
查看你某一个数据库中有哪些表
第一种:
首先使用库use mysql;
然后查看表show tables;

第二种:
show tables from mysql;

SQL注入常用语法----SELECT特殊查询用法
查看时间
select now();

查看当前选择的是哪个数据库
select database();

查看版本
select version();

查看当前登录数据库的用户
select user();

查看数据路径
select @@datadir;** **

查看mysql安装路径
select @@basedir;

查看mysql安装的系统
select @@version_compile_os;

查询数据
查所有字段select * from mysql.user;
查某几个比较重要的字段select user,host from mysql.user;

SQL注入常用语法----WHERE条件用法
where用于指定查询条件
查看用户为root的用户信息
select user,host from mysql.user where user = 'root';

SQL注入常用语法----CREATE创建库、表后的相关用法
创建库
create database test charset utf8mb4;
test为表名, utf8mb4为字符编码

创建表
使用刚刚创建的数据库use test
创建一个表create table t1(id INT);
t1为表名, id为字段, INT为字段类型

添加字段
alter table t1 add name varchar(32);
t1为要修改的表名, name为增加的字段名, varchar(32)是字段类型

查看添加t1表的字段
desc t1;

插入数据
insert into t1 value (1,"aa"),(2,"bb"),(3,"cc");

多条件查询—and
为了方便演示,在数据库test中再插入一条name为aa的数据insert into t1 value (4,"aa")
然后查询name为aa,id为1的数据select * from test.t1 where name = "aa" and id =1;

多条件查询—or(重要!!!)
and是必须两个条件都成立,or是前后成立一个条件即可,在sql注入里经常使用or 1=1,因为1=1这个条件必然成立,就不用关其他条件是什么了
select * from test.t1 where name = "aa" or 1=1;
因为1=1必然成立,查询语句会直接忽略name=“aa”,因此并没有查询name为aa的数据,而是查询了所有的数据。

联合查询—union(重要!!!)
union可用于将两个sql语句联合起来,把结果合并在一个结果集里
select * from test.t1 union select 1,2;

前半部分select* from test.t1查询了t1表的全部数据
后半部分select 1,2可以用于测试该表中有多少个字段,具体用法如下:
使用
select * from test.t1 union select 1;会报错,因为select 1的字段只有1个,而select * from test.t1的字段有两个,字段个数不匹配因此会报错。可以通过这种报错进行字段数量的探测,字段数量不一致会报错,字段数量一致则不会报错。
增加字段进行探测,使用select * from test.t1 union select 1,2;探测成功,该t1表的字段暴露

删除表
drop table t1;

SQL注入常用语法—特殊表的使用
information_schema.SCHEMATA表
先看下information_schema.SCHEMATA表里有哪些字段:
select * from information_schema.SCHEMATA;

可以发现show databases;等价于select SCHEMA_NAME from information_schema.SCHEMATA;

information_schema.TABLES表
先看下information_schema.SCHEMATA表里有哪些字段:
select * from information_schema.TABLES;

查看指定数据库的表信息
select * from information_schema.TABLES where table_schema = "test";

查看指定数据库的列信息
select * from information_schema.COLUMNS where table_schema = "test";


黑客/网络安全学习包


资料目录
-
成长路线图&学习规划
-
配套视频教程
-
SRC&黑客文籍
-
护网行动资料
-
黑客必读书单
-
面试题合集
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
优快云大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享
1.成长路线图&学习规划
要学习一门新的技术,作为新手一定要先学习成长路线图,方向不对,努力白费。
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图&学习规划。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。


因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
优快云大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享
2.视频教程
很多朋友都不喜欢晦涩的文字,我也为大家准备了视频教程,其中一共有21个章节,每个章节都是当前板块的精华浓缩。


因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
优快云大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享
3.SRC&黑客文籍
大家最喜欢也是最关心的SRC技术文籍&黑客技术也有收录
SRC技术文籍:

黑客资料由于是敏感资源,这里不能直接展示哦!
4.护网行动资料
其中关于HW护网行动,也准备了对应的资料,这些内容可相当于比赛的金手指!
5.黑客必读书单
**

**
6.面试题合集
当你自学到这里,你就要开始思考找工作的事情了,而工作绕不开的就是真题和面试题。

更多内容为防止和谐,可以扫描获取~

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
SQL注入入门与数据库基础

1174

被折叠的 条评论
为什么被折叠?



