MySQL 设计缺陷导致恶意服务器从客户端窃取文件

聚焦源代码安全,网罗国内外最新资讯!

编译:360代码卫士团队

客户端主机和MySQL服务器之间的文件传输交互中存在一个设计缺陷,可导致攻击者运行恶意MySQL服务器,从而获取联网客户端具有读取权限的数据的访问权限。

恶意人员能利用该漏洞从和不受信任服务器进行连接的配置不当的web服务器中检索敏感信息,或从数据库管理应用程序中检索敏感信息。

已知的安全问题

问题存在于和LOCAL修饰符使用的LOAD DATA语句中,MySQL文档中将其列为安全风险。

研究人员解释称,客户端基于客户端在LOAD DATA语句中提供的信息从MySQL服务器中获取文件传输请求。然而,恶意服务器能够以LOAD DATA LOCAL语句回复并要求获取客户端具有读取权限的任何文件。

MySQL文档中提到,“被修复的服务器实际上能够以文件传输请求回复任何语句,而不仅是LOAD DATA LOCAL,因此更根本的问题是客户端不应和不受信任的服务器连接。”

这种情况也适用于web服务器,和MySQL服务器连接时当做客户端。在这种情况下,攻击者能够利用该缺陷窃取含有用户账户记录的/etc/ passwd文件。

只有服务器在知道完整路径的情况下才能获取该文件。然而,完整路径可通过请求提供运行进程环境变量的“/proc/self/environ’文件的方式获取,从而导致内部文件夹结构的主目录和详情遭暴露。

现成可用的恶意 MySQL 服务器

安全研究员Willem de Groot在Reddit引发的讨论认为,用户可遭恶意MySQL服务器的攻击。其中窃取密币钱包的SSH密钥和访问详情就是一种。De Groot认为,2018年10月发生的Magecart攻击利用的就是MySQL缺陷注入购物网站代码,窃取结算时使用的支付卡详情。

恶意MySQL服务器的代码早在5年前就出现在GitHub上,因此网络犯罪分子将其用于攻击者也就不足为奇了。

上周,de Groot发布博客文章解释了犯罪分子如何使用该缺陷,通过管理PostgreSQL和MySQL数据库的工具Adminer提取敏感详情。

攻击者的目的似乎是窃取Magento商务平台存储数据库密码的文件(‘local.xml’)。

这种情况是很有可能发生在运行Adminer易受攻击版本(修订版4.3.1至4.6.2)的网站上的。网站管理员应当更新至Adminer更加安全的版本,也就是至少更新至4.6.3。

https://www.bleepingcomputer.com/news/security/mysql-design-flaw-allows-malicious-servers-to-steal-files-from-clients/

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190122B162H800?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券