SQL注入学习

学习SQL注入就要提及一下数据库的基本概念

数据库就是一个存储数据的仓库,数据库是以一定方式存储在一起,能与多个用户共享,具有尽可能小的冗余度,与应用程序彼此独立的数据集合。

数据库类型:

关系型数据库,存储的格式可以直观地反映实体间的关系。关系型数据库和常见的表格比较相似,关系型数据库表与表之间是有很多复杂的关联关系的。常见的关系型数据库有MySQL,Oracle,PostgreSQL,SQL,Server。

非关系型数据库: NoSQL数据库适合追求速度和可扩展性,业务多变的应用场景。MongoDB

MySQL四种库:

informance_schema库

informance_schema库是信息数据库,其中保存着关于MySQL服务器所维护的所有其他数据库的信息,比如数据库名,数据库表,表字段的数据类型与访问权限等。

mysql库

mysql库:MySQL的核心数据库,主要负责存储数据库的用户,权限设置,关键字等mysql自己需要使用的控制和管理信息。

performance_schema库

performance_schema库:内存数据库,数据放在内存中直接操作的数据库,相对于磁盘,内存的数据读写速度要高出几个数量级,将数据保存在内存中相比从磁盘上访问能够极大地提高应用的性能。

sys库

sys库:通过这个数据库,可以查询谁使用了最多的资源基于IP或是用户。那张表被访问最多等等信息。

现在我们进行一些数据库实操:

实操所用为Ubuntu 7.5.0,Docker 24.0.2,mysql 5.7.42,SQLyog

首先我们用docker创建启动MySQL并设置密码:

docker run --name sqlmysql -d -p 4001:3306 -e MYSQL_ROOT_PASSWORD=123 [IMAGE ID]

MYSQL_ROOT_PASSWORD可以自己设置想要的密码。

 出现形如上图中最后一行的代码即为创建成功。

然后我们查看MySQL是否运行:

docker ps

如图即为运行中:

 我们进入容器:

docker exec -it sqlmysql /bin/bash

连接MySQL:

mysql -uroot -p

然后我们使用SQLyog连接MySQL,并完成一些操作。

-- 列出所有数据库

SHOW DATABASES;

 -- 查看某一个数据库里所有的表

需要先声明使用的库

USE mysql;
SHOW TABLES;

 -- select特殊应用

-- 查看当前选择的哪个库
SELECT DATABASE();

-- 版本
SELECT VERSION();

-- 查看当前登录数据库的用户
SELECT USER();

-- 查看数据路径
SELECT @@datadir;

-- 查看mysql安装路径
SELECT @@basedir;

-- 查看mysql安装的系统
SELECT @@version_compile_os;

-- 查询数据
-- SELECT查询关键字
-- *代查表
SELECT * FROM mysql.user;

-- show databases;
SELECT * FROM information_schema.`SCHEMATA`;
show databases;
SELECT schema_name FROM information_schema.`SCHEMATA`;

-- 结果相同
-- 创建库
CREATE DATABASE test CHARSET utf8mb4;

-- 创建表
USE test;
CREATE TABLE t1(id INT);

-- 删除表
DROP TABLE t1;

-- 创建项
SHOW TABLES FROM test;
ALTER TABLE t1 ADD NAME VARCHAR(32);
DESC t1;

-- 插入数据
INSERT INTO t1 VALUES(1,"张三"),(2,"李四"),(3,"王五");
INSERT INTO t1 VALUES (4,'张三');
SELECT * FROM t1;

-- where and or
SELECT * FROM test.t1 WHERE NAME = '张三' AND id = 1;
SELECT * FROM test.t1 WHERE NAME = '张三' OR 1 = 1;

-- union
SELECT * FROM test.t1 UNION SELECT 1,2;
SELECT USER,HOST FROM mysql.user UNION SELECT * FROM test.`t1`;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值