系列文章
简介
渗透测试-地基篇
该篇章目的是重新牢固地基,加强每日训练操作的笔记,在记录地基笔记中会有很多跳跃性思维的操作和方式方法,望大家能共同加油学到东西。
请注意:
本文仅用于技术讨论与研究,对于所有笔记中复现的这些终端或者服务器,都是自行搭建的环境进行渗透的。我将使用Kali Linux作为此次学习的攻击者机器。这里使用的技术仅用于学习教育目的,如果列出的技术用于其他任何目标,本站及作者概不负责。
名言:
你对这行的兴趣,决定你在这行的成就!
一、前言
数据库作为业务平台信息技术的核心和基础,承载着越来越多的关键数据,渐渐成为单位公共安全中最具有战略性的资产,数据库的安全稳定运行也直接决定着业务系统能否正常使用。并且平台的数据库中往往储存着等极其重要和敏感的信息。这些信息一旦被篡改或者泄露,轻则造成企业经济损失,重则影响企业形象,甚至行业、社会安全。可见,数据库安全至关重要。所以对数据库的保护是一项必须的,关键的,重要的工作任务。
通过前几期钓鱼、内网攻防篇章落幕后,引来了服务攻防篇章之数据库渗透篇,不管在外网还是内网环境,只要存在业务系统都存在数据库,在渗透测试对数据库的知识学习是必不可少的,接下来将介绍数据库的渗透基本操作,带小伙伴们了解和学习数据库如何渗透的!
二、搭建mysql数据库
1、mysql搭建使用phpstudy工具,下图是安装包说明。
2、双击包,选择好安装的目录一直下一步即可。
以上出现别的提示,根据提示安装兼容软件...
成功后启用,如出现端口冲突、服务启动失败解决即可!
三、数据库基本操作
1、登录mysql:
首先进入到C:\phpStudy\MySQL\bin(即安装的目录下,默认是D盘)
命令:
mysql -uroot -proot -P3306 -h127.0.0.1
这里已经搭建好mysql,成功本地登录,通过kali、mac、pc远程登录mysql方法:
命令:
GRANT ALL ON *.* TO root@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
这句话意思:允许任何IP地址(上面的 % 就是这个意思)的电脑用root帐户和密码(root)来访问这个MySQL Server,当然如果改成admin就只允许admin用户登录,root就无法远程登录。
2、基础命令巩固
1)mysql三种退出方式:
命令:
mysql > exit;
mysql > quit;
mysql > \q;
2)查看所有数据库、所在文件夹:
命令:
show databases; 查看所有数据库
use mysql 进入数据库
select database(); 查看当前所在的位置
3)mysql三种注释符:
命令:
#dayu
"-- dayu"
/*dayu*/
dayu可替换任何信息
4)mysql增删数据库
命令:
create database dayu1; 增加数据库
drop database dayu1; 删除数据库
5)改数据库值
命令:
alter database dayu charset utf8;
这里知道怎么改即可。
6)查看数据表和表资源信息
命令:
show tables; #查看数据列表信息
desc user; #查看数据表内容
show status; #显示一些系统特定资源的信息,例如,正在运行的线程数量
其中表的内容包含:表结构,字段类型,主键,是否为空等属性。
7)筛查数据表用户密码
命令:
select password from user where user='root';
四、数据库表操作
1、table表的操作
1)简单创建table数据表
命令:
create table users(id int(7)); #创建table表,给与长度7
2)创建完整表
命令:
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)修改表
命令:
alter table biao rename biao10;
ALTER TABLE 旧表名 RENAME 新表名;
2)修改字段数据类型
alter table biao10 modify username varchar(155);
ALTER TABLE 表名 MODIFY 属性名 数据类型;
3)修改字段名
alter table biao10 change username dayuname char(111);
ALTER TABLE 表名 CHANGE 旧属性名 新属性名 新数据类型;
4)增加字段名
alter table biao10 add shell char(111) not null;
ALTER TABLE 表名 ADD 属性名1 数据类型 [完整性约束条件] [FIRST | AFTER 属性名2];
5)删除字段
alter table biao10 drop shell;
ALTER TABLE 表名 DROP 属性名;
6)修改存储表引擎
alter table biao10 engine=myisam;
ALTER TABLE 表名 ENGINE = 存储引擎名;
五、数据库增删改查操作
1、表中所有字段添加数据
命令:
insert into biao1 (id,username,password) values (1,'dayu','123456');
# INSERT 语句中指定所有字段名
insert into biao1 values(null,'test','123456');
#INSERT语句中不指定字段名
2、为表的指定字段添加数据
命令:
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、在表中删除数据
命令:
delete from biao1 where id=1;
#这种方法删除数据后,在增加数据id会从后开始增添:8、9等等..
truncate table biao1;
#这种方法删除数据后,在增加数据id=1开始算
delete from biao1;
#全部删除
4、更改表中数据
更新数据指对表中现存的数据进行修改
命令:
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下篇章!
希望大家提高安全意识,没有网络安全就没有国家安全!
今天基础牢固就到这里,虽然基础,但是必须牢记于心。
作者:大余