freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

渗透测试之地基服务篇:服务攻防之数据库Mysql(上)
2021-07-09 12:01:13

系列文章

专辑:渗透测试之地基篇

简介

渗透测试-地基篇

该篇章目的是重新牢固地基,加强每日训练操作的笔记,在记录地基笔记中会有很多跳跃性思维的操作和方式方法,望大家能共同加油学到东西。

请注意

本文仅用于技术讨论与研究,对于所有笔记中复现的这些终端或者服务器,都是自行搭建的环境进行渗透的。我将使用Kali Linux作为此次学习的攻击者机器。这里使用的技术仅用于学习教育目的,如果列出的技术用于其他任何目标,本站及作者概不负责。

名言:

你对这行的兴趣,决定你在这行的成就!

一、前言

数据库作为业务平台信息技术的核心和基础,承载着越来越多的关键数据,渐渐成为单位公共安全中最具有战略性的资产,数据库的安全稳定运行也直接决定着业务系统能否正常使用。并且平台的数据库中往往储存着等极其重要和敏感的信息。这些信息一旦被篡改或者泄露,轻则造成企业经济损失,重则影响企业形象,甚至行业、社会安全。可见,数据库安全至关重要。所以对数据库的保护是一项必须的,关键的,重要的工作任务。

通过前几期钓鱼、内网攻防篇章落幕后,引来了服务攻防篇章之数据库渗透篇,不管在外网还是内网环境,只要存在业务系统都存在数据库,在渗透测试对数据库的知识学习是必不可少的,接下来将介绍数据库的渗透基本操作,带小伙伴们了解和学习数据库如何渗透的!

二、搭建mysql数据库

1、mysql搭建使用phpstudy工具,下图是安装包说明。

1625803329_60e7ca41e50b5c20bcd7a.png!small?1625803331480

2、双击包,选择好安装的目录一直下一步即可。

1625803337_60e7ca49b8e3fee38f54e.png!small?1625803338743

以上出现别的提示,根据提示安装兼容软件...

1625803346_60e7ca52212a17b6e391a.png!small?1625803348222

成功后启用,如出现端口冲突、服务启动失败解决即可!

三、数据库基本操作

1、登录mysql:

首先进入到C:\phpStudy\MySQL\bin(即安装的目录下,默认是D盘)

1625803354_60e7ca5abce86d97bd15a.png!small?1625803356047

命令:

mysql -uroot -proot -P3306 -h127.0.0.1

这里已经搭建好mysql,成功本地登录,通过kali、mac、pc远程登录mysql方法:

1625803359_60e7ca5f1362a3eb42cfb.png!small?1625803359315

命令:

GRANT ALL ON *.* TO root@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;

这句话意思:允许任何IP地址(上面的 % 就是这个意思)的电脑用root帐户和密码(root)来访问这个MySQL Server,当然如果改成admin就只允许admin用户登录,root就无法远程登录。

2、基础命令巩固

1)mysql三种退出方式:

1625803368_60e7ca684f56b56edb1b9.png!small?1625803371262

命令:

mysql > exit;
mysql > quit;
mysql > \q;

2)查看所有数据库、所在文件夹:

1625803373_60e7ca6dc99f50c762770.png!small?1625803374563

命令:

show databases;			查看所有数据库
use mysql				进入数据库
select database();		查看当前所在的位置

3)mysql三种注释符:

1625803383_60e7ca773d044fab949e0.png!small?1625803384668

命令:

#dayu
"-- dayu"
/*dayu*/

dayu可替换任何信息

4)mysql增删数据库

1625803390_60e7ca7e2bace8facde38.png!small?1625803395352

命令:

create database dayu1;		增加数据库
drop database dayu1;		删除数据库

5)改数据库值

1625803394_60e7ca829230ac58cfcc9.png!small?1625803395353

命令:

alter database dayu charset utf8;

这里知道怎么改即可。

6)查看数据表和表资源信息

1625803401_60e7ca899ac3a5c802968.png!small?1625803402399

命令:

show tables;  #查看数据列表信息
desc user;   #查看数据表内容

show status;   #显示一些系统特定资源的信息,例如,正在运行的线程数量

其中表的内容包含:表结构,字段类型,主键,是否为空等属性。

7)筛查数据表用户密码

1625803432_60e7caa891a0ad7de3017.png!small?1625803433017

命令:

select password from user where user='root';

四、数据库表操作

1、table表的操作

1)简单创建table数据表

1625803439_60e7caaf8c41ee7b78f2d.png!small?1625803440797

命令:

create table users(id int(7));   #创建table表,给与长度7

2)创建完整表

1625803444_60e7cab48899a8b2a3da9.png!small?1625803444997

命令:

create table biao(id int(7)auto_increment,username char(100) not null,password char(100)not null,primary key(id))engine=innodb default charset=utf8;

create table biao(id int(7)		#创建表
AUTO_INCREMENT					#标识该属性的值是自动增加,这是MySQL的SQL语句的特色
username varchar(100) not null	#字段、数据类型和长度值、不能为空
PRIMARY KEY 					#标识该属性为该表的主键,可以唯一的标识对应的元组
ENGINE 						#设置表的引擎和默认的字符类型,常见的数据库引擎InnoDB myisam
DEFAULT	 						#为该属性设置默认值

以上都是约束条件。
常见的约束条件:

PRIMARY KEY #标识该属性为该表的主键,可以唯一的标识对应的元组
FOREIGN KEY #标识该属性为该表的外键,是与之联系某表的主键
NOT NULL	#标识该属性不能为空
UNIQUE 		#标识该属性的值是唯一的
AUTO_INCREMENT	#标识该属性的值是自动增加,这是MySQL的SQL语句的特色
DEFAULT	 #为该属性设置默认值

2、表格基础操作

1)修改表

1625803452_60e7cabc6118b89e39fff.png!small?1625803453393

命令:

alter table biao rename biao10;
ALTER TABLE 旧表名 RENAME 新表名;

2)修改字段数据类型

1625803458_60e7cac27aa3d2ec8167c.png!small?1625803459226

alter table biao10 modify username varchar(155);
ALTER TABLE 表名 MODIFY 属性名 数据类型;

3)修改字段名

1625803462_60e7cac67e9b73c0d6488.png!small?1625803463092

alter table biao10 change username dayuname char(111);
ALTER TABLE 表名 CHANGE 旧属性名 新属性名 新数据类型;

4)增加字段名

1625803466_60e7cacaedfcd96d8f91a.png!small?1625803467410

alter table biao10 add shell char(111) not null;
ALTER TABLE 表名 ADD 属性名1 数据类型 [完整性约束条件] [FIRST | AFTER 属性名2];

5)删除字段

1625803472_60e7cad033b827a3fa9dc.png!small?1625803473186

alter table biao10 drop shell;
ALTER TABLE 表名 DROP 属性名;

6)修改存储表引擎

1625803475_60e7cad396cd802198e13.png!small?1625803475744

alter table biao10 engine=myisam;
ALTER TABLE 表名 ENGINE = 存储引擎名;

五、数据库增删改查操作

1、表中所有字段添加数据

1625810141_60e7e4dd4736747cc9b17.png!small?1625810151308

命令:

insert into biao1 (id,username,password) values (1,'dayu','123456');
# INSERT 语句中指定所有字段名

insert into biao1 values(null,'test','123456');
#INSERT语句中不指定字段名

2、为表的指定字段添加数据

1625810141_60e7e4dd02bedab670811.png!small?1625810151308

命令:

insert into biao1 (username)values('dayu1');
 #指定字段添加数据递增状态

insert into biao1 (id,username,password) values (null,'dayu','123456'),(null,'dayu3','1234567');
#增加多条方法

insert into biao1 values (null,'dayu','123456'),(null,'dayu3','1234567');
#增加多条方法

3、在表中删除数据

1625810149_60e7e4e5431479e132d73.png!small?1625810151308

命令:

delete from biao1 where id=1; 
#这种方法删除数据后,在增加数据id会从后开始增添:8、9等等..

truncate table biao1;
#这种方法删除数据后,在增加数据id=1开始算

delete from biao1;
#全部删除

4、更改表中数据

1625810147_60e7e4e373b71a331128d.png!small?1625810151307

更新数据指对表中现存的数据进行修改

命令:

update biao1 set password='56454' where id=2;

update biao1 set password='22222',username='root' where id=3;
#修改多种类型数据
update biao1 set password='123456';
#修改所有类型数据

六、总结

数据库基础是必备知识,一定要熟悉数据库Mysql底层是如何增删改查的,不然在注入数据库、渗透数据库时候就会无从下手!小伙伴们一定巩固今天讲到的基操、表操作等操作行为!

服务攻防之数据库Mysql(上)-> 服务攻防之数据库Mysql(下)......

接下来在《服务攻防之数据库Mysql(下)》中会接触到如何对数据Mysql进行增删改查、库内链接等操作方法,请看下篇服务攻防之数据库Mysql下篇章!

希望大家提高安全意识,没有网络安全就没有国家安全!

今天基础牢固就到这里,虽然基础,但是必须牢记于心。

作者:大余

# 数据库安全 # mysql
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录