MySQL曝中间人攻击Riddle漏洞可致用户名密码泄露的处理方法
针对MySQL 5.5和5.6版本的Riddle漏洞会经由中间人攻击泄露用户名密码信息。请尽快更新到5.7版本。
Riddle漏洞存在于DBMS Oracle MySQL中,攻击者可以利用漏洞和中间人身份窃取用户名和密码。
“Riddle是一个在Oracle MySQL 5.5和5.6客户端数据库中发现的高危安全漏洞。允许攻击者在中间人位置使用Riddle漏洞破坏MySQL客户端和服务器之间的SSL配置连接。”漏洞描述写道。“此漏洞是一个非常危险的漏洞,因为首先它会影响MySQL ? 非常流行的SQL数据库 ? 其次会影响SSL连接,根据SSL的定义,它理应是安全的。”
Riddle漏洞的编号为CVE-2017-3305,当MySQL 5.5和5.6向服务器发送数据,包括用户名密码时,攻击者可以捕获它们。
针对5.5.49、5.6.30版本的安全更新并没有完全修复漏洞。专家注意到,5.7版本之后以及MariaDB系统没有受到漏洞影响。
安全研究员Pali Rohár称,导致Riddle漏洞的原因是之前存在于MySQL数据库中的BACKRONYM漏洞没有被修复。Backronym漏洞能在中间人攻击时用来泄露密码,即使流量经过加密。
“针对稳定版本的MySQL 5.5.49和5.6.30的安全更新中添加了在验证过程完成后对安全参数的验证。”“由于动作是验证完成后做出的,因此利用Riddle进行中间攻击再与SSL降级配合,攻击者就可以窃取登录数据进行身份验证并登录到MySQL服务器,“Rohár写道。
“有趣的是,当MySQL服务器拒绝验证用户时,MySQL客户端不会报告任何与SSL相关的错误,而是会报告服务器发送的未加密的错误消息。而这些错误消息由中间人攻击者控制的。”
专家建议将客户端软件更新为MySQL 5.7或MariaDB,因为这些应用程序的安全更新是能够正常工作的。
PoC
作者给出了用Perl写的PoC脚本。它会在本地3307端口开启riddle,MySQL服务器运行在localhost:3306。
在中间人服务器运行riddle:
$ perl riddle.pl
将MySQL客户端与riddle连接:
$ mysql --ssl-mode=REQUIRED -h 127.0.0.1 -P 3307 -u user -p password
如果你提供了正确的用户名密码,riddle就会连接到服务器,执行SQL语句并输出:
SELECT COUNT(*) FROM information_schema.TABLES --> 121
MySQL客户端会收到一条由riddle发送的错误信息:
ERROR 1045 (28000): Access denied: MITM attack
Oracle修复漏洞不及时
Riddle漏洞在二月份被发现,但是这个漏洞仍然能够影响到Oracle MySql软件。
“如果你不是Oracle客户的话,向他们报告漏洞是没有用的(即使是与安全相关的漏洞)。他们可以完全忽视任何报告,如果没人知道的话,他们会很高兴,因此不用修复漏洞了,“Rohár解释说。
总结
以上所述是小编给大家介绍的MySQL曝中间人攻击Riddle漏洞可致用户名密码泄露的处理方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
- 1475: 方格取数
- python3 将字典,列表等转换成字符串形式存入mysql数据库并复原成字典,列表(处理稍复杂的格式)
- 1441: Min
- 2429: [HAOI2006]聪明的猴子
- 使用apt-get 安装后的mysql 登录问题
- SQL Server 深入解析索引存储(中)
- 1789: [Ahoi2008]Necklace Y型项链
- 3399: [Usaco2009 Mar]Sand Castle城堡
- 遗传算法(1)
- LOJ#6284. 数列分块入门 8
- 3713: [PA2014]Iloczyn
- 洛谷P3195 [HNOI2008]玩具装箱TOY(单调队列优化DP)
- SQL Server 深入解析索引存储(下)
- 2751: [HAOI2012]容易题(easy)
- MySQL 教程
- MySQL 安装
- MySQL 管理与配置
- MySQL PHP 语法
- MySQL 连接
- MySQL 创建数据库
- MySQL 删除数据库
- MySQL 选择数据库
- MySQL 数据类型
- MySQL 创建数据表
- MySQL 删除数据表
- MySQL 插入数据
- MySQL 查询数据
- MySQL where 子句
- MySQL UPDATE 查询
- MySQL DELETE 语句
- MySQL LIKE 子句
- mysql order by
- Mysql Join的使用
- MySQL NULL 值处理
- MySQL 正则表达式
- MySQL 事务
- MySQL ALTER命令
- MySQL 索引
- MySQL 临时表
- MySQL 复制表
- 查看MySQL 元数据
- MySQL 序列 AUTO_INCREMENT
- MySQL 处理重复数据
- MySQL 及 SQL 注入
- MySQL 导出数据
- MySQL 导入数据
- MYSQL 函数大全
- MySQL Group By 实例讲解
- MySQL Max()函数实例讲解
- mysql count函数实例
- MYSQL UNION和UNION ALL实例
- MySQL IN 用法
- MySQL between and 实例讲解
- CentOS 7 安装 Jenkins过程详解
- ubuntu15.10下hadoop2.7.2的安装与配置详解
- linux服务器被植入ddgs、qW3xT.2挖矿病毒的处理实战记录
- Linux 创建修改删除用户和组的方法
- 详解Ubuntu16.04安装nvidia驱动+CUDA+cuDNN的教程
- linux free命令详解
- Linux下memcache编译安装与基本使用教程
- Linux中MongoDB如何实现远程自动备份详解
- 覆盖原先的PATH导致命令失效提示command not found的解决方法
- Linux中可以节省你时间的15个命令别名
- Linux下利用unzip命令如何解压多个文件详解
- linux查看磁盘使用情况方法
- 详解Linux(centos7)下安装OpenSSL安装图文方法
- 面试官:考你几个简单的事件问题吧
- 如何创建Linux的swap交换分区文件的方法步骤