[toc]

一.MYSQL

1.MYSQL简介

​ MYSQL 是一种开源的关系型数据库产品,具有开放式的架构。MYSQL最初由瑞典MYSQL AB 公司研发,后被SUN 公司收购,最后被Oracle公司收购。

​ MYSQL 数据库是传统的关系型数据库,其开放式的架构使得用户有更多的选择。当下大多数互联网公司也比较热衷选择开源代码架构的产品。MYSQL 数据库在不断的更新和迭代发展,其功能也越来越强大,性能越爱越好,支持的平台越来越广。在实际工作中,MYSQL也是使用最多的是数据库。

2.MYSQL版本

​ MYSQL有众多版本,如下所示:

(1)Alpha版本:一般在软件开发公司内部运行,不对外公开。

(2)Beta版本:完成功能开发和所有测试工作后的产品,不会存在较大的功能或者性能Bug。

(3)PC版本:属于正式发布前的一个版本,也是最终测试版本,进一步收集Bug或者不足之处,然后进行修复和完善。

(4)GA版本:软件产品正式发布的版本,也是生产环境使用的版本。

3.MYSQL的安装方式

(1)常见的编译安装方式(适用于MYSQL 5.5前的版本)。

(2)二进制包安装的方式。

(3)RPM包的安装方式。

(4)Cmake方式安装(适用于MYSQL 5.5后的版本)。

二.MYSQL 的安装与部署(本次部署是在Centos8上面部署的,安装包和命令都是成功后的复制品,不存在失败)

1.MYSQL安装包的下载网站

1
https://downloads.mysql.com/archives/community/

在里面下载一个Linux的 mysql-5.7.16-linux-glibc2.5-x86_64.tar.gz 二进制安装包

2.安装依赖包软件

1
[root@kejulin ~]# yum -y install zlib-devel gcc-c++ ncurses ncurses-devel libaio libaio-devel libncurses*

*3.用xshell上传 mysql-5.7.16-linux-glibc2.5-x86_64.tar.gz到服务器上*

1
[root@kejulin ~]# yum -y install lrzsz     #安装lrzsz 方便两设备上传下载东西

安装好 lrzsz 后即可时使用 rz 命令上传文件到服务器,使用 sz 命令下载文件到客户端

1
[root@kejulin ~]# rz

上传完成后可以用 ls 命令来看到 mysql-5.7.16-linux-glibc2.5-x86_64.tar.gz 二进制安装包

4.安装MYSQL

1
2
3
4
5
[root@kejulin ~]# useradd mysql -s /sbin/nologin -M      #创建一个mysql的账号,并且定义它不能登录shell,-M参数:不要自动建立用户的主目录(意味这mysql这个用户没有家)
[root@kejulin ~]# mkdir -p /mysql/data #创建一个递归目录,-p参数:没有的目录自动创建
[root@kejulin ~]# chown -R mysql.mysql /mysql/ #递归更改目录的属主和属组为mysql,-R参数:递归地更改指定文件夹的所有权,但不更改链接指向目录
[root@kejulin ~]# tar zxf mysql-5.7.16-linux-glibc2.5-x86_64.tar.gz -C /usr/local/ #指定解压 mysql-5.7.16-linux-glibc2.5-x86_64.tar.gz 到/usr/local/ 目录下
[root@kejulin ~]# ln -s /usr/local/mysql-5.7.16-linux-glibc2.5-x86_64 /usr/local/mysql #说真的。。。看到这个我tm笑死,建立软连接干嘛,怕那么点字母?
1
2
3
4
5
[root@kejulin mysql]# cd /usr/local/mysql/      
[root@kejulin mysql]# cp support-files/my-default.cnf /etc/my.cnf #修改/etc/my.cnf 里面的数据就好,my-default.cnf 这个压根不用管。。。配置文件都转移到/etc/目录下面了
[root@kejulin mysql]# cp support-files/mysql.server /etc/init.d/mysqld
# init.d目录包含许多系统各种服务的启动和停止脚本(/etc/init.d里的shell脚本能够响应start,stop,restart,reload命令来管理某个具体的应用)。
[root@kejulin mysql]# chmod +x /etc/init.d/mysqld #添加执行权限,x参数:执行权限

5.MYSQL初始化

1
[root@kejulin mysql]# ./bin/mysqld --initialize --basedir=/usr/local/mysql --datadir=/mysql/data/ --user=mysql      #初始化并且规定服务安装目录、	MYSQL服务数据存储目录、规定使用者是 mysql

初始化完成后会出现一段密码,把它保存下来,后面登录数据库需要用到它

后面这样一串就是密码: >rqiYpmT9Sh_ (注意:这里别把空格弄进去了,空格在密码也算一个位置的,密码是自动生成的,每台设备都不一样,别抄我的密码进去了,这样都弄错。。。小心我锤爆你狗头doge)

1
[root@kejulin mysql]# egrep -v "^#|^$" /etc/my.cnf    #其实刚刚看到这串鬼东西的时候,我人都傻了,我只学过grep这个命令,egrep这是什么鬼东西,后来从度娘那边查到egrep == grep -e ,秒懂!!!(废话一堆,这句话意思就是,过滤掉 my.cnf 文本里面的注释和空格,剩下的东西全部显现在屏幕上)

可以看出my.cnf 里面就两行配置信息

那么我们直接进去加点料,定义一些配置信息,让我们装逼装的更加彻底

1
[root@kejulin mysql]# vim /etc/my.cnf

进去就会看到这样的 冥场面

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html
# *** DO NOT EDIT THIS FILE. It's a template which will be copied to the
# *** default location during install, and will be replaced if you
# *** upgrade to a newer version of MySQL.

[mysqld]

# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M

# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin

# These are commonly set, remove the # and set as required.
# basedir = .....
# datadir = .....
# port = .....
# server_id = .....
# socket = .....

# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
~
~

对于我这个英语小白来说简直绝望

在里面写入这段配置信息,注意不要重复了

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[client]
port = 3306
socket = /mysql/mysql.sock
[mysqld]
basedir = /usr/local/mysql
datadir = /mysql/data/
port = 3306
server_id = 1
socket = /mysql/mysql.sock
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
[mysqld_safe]
log-error = /mysql/mysql.log
pid-file = /mysql/mysql.pid

6.开启MYSQL服务

开启这个服务之后,然后就能看到唯一看得懂的英文 SUCCESS

1
2
[root@kejulin mysql]# /etc/init.d/mysqld start
Starting MySQL.. SUCCESS!

可以使用这段代码来监听端口

1
2
3
[root@kejulin mysql]# lsof -i :3306
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
mysqld 11932 mysql 23u IPv6 150481 0t0 TCP *:mysql (LISTEN)

7.配置环境变量

1
2
[root@kejulin mysql]# echo 'export PATH=$PATH:/usr/local/mysql/bin' >> /etc/profile
[root@kejulin mysql]# source /etc/profile

8.登录数据库

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[root@kejulin ~]# mysql -uroot -p      
Enter password: #别告诉我你没有保存密码哦,小心狗头!!!
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.16

Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>
mysql>
mysql>

9.修改密码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '1234567890';    #密码改成1234567890
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> exit #退出数据库
Bye
[root@kejulin ~]#
[root@kejulin ~]# mysql -uroot -p1234567890
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.16 MySQL Community Server (GPL)

Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

三.结尾

虽然,CSDN 和 百度 等搜索工具里面查到的MYSQL很坑,但是作为一个先行者,我可以很负责任的说能善于用任何工具来解决自己问题对于日后的排错非常有帮助。

遇到的困难都可以自己尝试去解决的。

[toc]

kali 系统基础配置(2023版)

换源

1
sudo vim /etc/apt/sources.list

然后将原有的源全部注释掉,然后插入下面这串源地址

1
2
deb http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib
deb-src http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib

etc模式下输入这个 :set nu 可以看到行号

1
#deb 代表软件位置,deb-src 代表软件的源代码的位置

apt 命令和知识

使用apt 新的软件包获取最新的软件包列表。

**注意:apt update 的作用是从/etc/apt/sources.list 文件中定义的源中获取的最新的软件包列表。即运行apt update 并没有更新软件,而是相当于windows下面的检查更新,获取的是软件的状态。 **

Kali apt 源的软件包类型说明:

dists 区域 软件包组件标准

main 遵从Debian 自由软件指导方针(DFSG),并且不依赖 non-free

contrib 遵从Debian 自由软件指导方针(DFSG),但依赖于 non-free

non-free 不遵从Debian 自由软件指导方针(DFSG)

注意:DFSG是Debian 自由软件指导方针

1
2
3
sudo apt update   #更新列表
sudo apt upgrade #从更新列表中升级软件包,升级时软件包有相依性的问题,次软件包就不会被升级。
sudo dist-upgrade #升级时,软件包有相依性问题,会移除旧版,直接安装新版本。(所以通常dist-upgrade被认为是有风险的升级)(移除旧版升级新版容易出现A依赖B的旧版,但是B升级了新版,但是A只能用B的旧版,所以A出现问题)

1
2
sudo apt install     #安装软件包
sudo apt remove #移除软件包

网络配置(ip、子网、网关、DNS)

1
sudo vim /etc/network/interfaces

写入这个静态ip和网络信息

1
2
3
4
5
auto eth0                  #使用这块网卡,不写这个网络配置相当于没用
iface eth0 inet static #配置eth0使用静态地址
address 192.168.1.53 #配置eth0的固定ip地址
netmask 255.255.255.0 #配置子网掩码
gateway 192.168.1.1 #配置网关

配置DNS信息

1
sudo vim /etc/resolv.conf    
1
2
3
#Generated by NetworkManager
search localdmain
nameserver 8.8.8.8
1
2
3
systemctl restart networking.service    #重启网络服务
#或者用
/etc/init.d/networking restart #重启网络服务

启动ssh服务

1
sudo vim /etc/ssh/sshd_config

插入这几行配置

1
2
PermitRootLogin yes
PubkeyAuthentication yes

然后重启ssh服务,并设置开机自启

1
2
systemctl restart ssh
systemctl enable ssh

信息收集

whois查询

站长之家

万网whois

在线网站备案

天眼查

ICP备案查询网

子域名收集

1.FOFA title=“公司名称”

2.百度 intitle=“公司名称”

3.Google intitle=“公司名称”

4.钟馗之眼 site:域名

dns信息收集

KALI 的渗透软件

Google搜索引擎的使用技巧

一.垃圾话

我们通常使用搜索引擎都是直接搜索自己想要的内容,正常情况下我们都是直接使用语言进行描述问题来进行搜索,然后搜索引擎也有特定的语法可以使用,熟练掌握搜索引擎的语法可以让你的搜索效率和准确率大幅度提升,当然我们学习这种技巧是为了寻找存在漏洞的页面,或者存在敏感信息的文件。

二.Google 常用语法说明

1
2
3
4
5
6
7
8
site              #指定域名,如:xuegod.cn
inurl #URL中存在的关键字页面,如:admin_login.php、admin/login.php、manage.php、admin.asp、admin.php
intext #网页内容里面的关键字,如:后台
Filetype #指定文件类型
intitle #网页标题中的关键字,如:后台登录、index.of、.bash_history
link #返回你所有的指定域名链接
info #查找指定站点信息
cache #搜索Google里面的内容缓存