MySQL设计Bug允许恶意服务器从客户端窃取文件

客户端主机和MySQL服务器之间的文件传输交互中的设计缺陷允许运行恶意MySQL服务器的攻击者访问连接的客户端具有读取访问权限的任何数据。

不法分子可以利用此问题从配置不当的web服务器(允许连接到不受信任的服务器)或数据库管理应用程序检索敏感信息。

安全问题根源

问题出在与本地修饰符一起使用的LOAD DATA语句上,该语句在MySQL文档中被引用为安全风险。

开发人员对此的解释是,客户端根据客户端在LOAD DATA语句中提供的信息从MySQL服务器接收文件传输请求。但是,恶意服务器可以使用LOAD DATA LOCAL语句进行回复,并要求客户端具有任何文件的权限。

打补丁的服务器实际上可以用文件传输请求对任何语句进行响应,而不仅仅是加载本地数据,因此更根本的问题是客户端不应该连接到不受信任的服务器,这同样适用于web服务器,它们在连接到MySQL服务器时充当客户端。在这种情况下,攻击者可以使用该缺陷窃取/etc/passwd文件,而这些文件包含用户帐户记录。

只有当服务器知道文件的完整路径时,才能通过这种方式获取文件。但是,操作者还可以通过请求“/proc/self/ environmenton”文件来了解这路径,该文件提供运行进程的环境变量,从而公开主目录和关于内部文件夹结构的详细信息。

随时可用的流氓MySQL服务器

安全研究员Willem de Groot 1月20日在Reddit上发起了一场讨论,引发了诸多议论,讨论者构思了恶意MySQL服务器的可能发挥作用的场景,如窃取SSH密钥和加密货币钱包的访问细节。

根据de Groot的说法,2018年10月的Magecart攻击利用MySQL漏洞向购物网站注入代码,窃取结账时的银行卡信息。过去五年,GitHub上已经出现了针对流氓MySQL服务器的代码,因此,如果网络犯罪分子在攻击中使用了它,也就不足为奇。

在上周的博客文章中,de Groot解释了骗子们是如何利用这个漏洞在Adminer(一个管理PostgreSQL和MySQL数据库的工具)的帮助下提取敏感细节的。攻击者的目的似乎是盗取Magento商业平台存储数据库密码的文件(“local.xml”)。

9932774-5221d95104291dfa.png

这在运行一个易受攻击的Adminer版本的网站上是可能的(版本4.3.1到4.6.2被发现受到了这个bug的影响)。管理员应该转向更安全的版本,版本最好不低于4.6.3。

猜你喜欢

转载自blog.csdn.net/weixin_34245169/article/details/86809994