在某次安全评估中,Synacktiv专家无意中发现某个应用可以从另一台MySQL服务器中读取敏感数据,而该应用程序正是使用了mysql的npm软件包。该npm软件包所支持的LOAD DATA LOCAL命令可让服务器读取客户端机器上的文件。尽管用户可以通过指定标记LOCAL_FILES来禁用这个危险功能,但实际上该配置并不生效,最后导致恶意的MySQL服务器始终可以读取连接客户端本地的文件。
根据官方文档的说法,mysql的npm包支持在进行连接时指定各种flag(某些设定参数),其中的LOCAL_FILES代表在客户端中是否可以使用LOAD DATA LOCAL命令。文章发布时多个2.x版本受到影响(2.17.1受到影响)。
通过抓包软件可以判断出,LOAD DATA LOCAL是不可用的。但是,服务器仍然可以要求连接过来的客户端读取本地文件,bettercap命令是Bettercap已经集成的一个简易恶意MySQL服务器,相关链接为https://github.com/bettercap/bettercap/wiki/mysql.server
该漏洞存在的根本原因是LOCAL_FILES标记并没有在代码运行时起到作用。
- 我的微信
- 微信扫一扫
-
- 我的微信公众号
- 微信扫一扫
-
评论