欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

MySQL曝中间人攻击Riddle漏洞可致用户名密码泄露的处理方法

程序员文章站 2022-06-26 18:38:19
针对mysql 5.5和5.6版本的riddle漏洞会经由中间人攻击泄露用户名密码信息。请尽快更新到5.7版本。 riddle漏洞存在于dbms oracle mysql...

针对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漏洞可致用户名密码泄露的处理方法,希望对大家有所帮助