近期大型商务网站和政府网站被黑客通过 Adminer 数据库入侵,根本原因是 MySQL 的协议缺陷。
但在官方文档显示,客户端主机到服务器主机的文件传输由 MySQL 服务器启动。理论上,客户端程序选择的文件不应是 LOAD DATA 语句中客户端指定的文件,而应该是传输服务器选择的文件。

虽然由很大的泄密风险,但服务器必须知道客户端上文件的完整路径,才可能成功。而请求/self/proc/environ,服务器就可以了解客户端上的文件夹结构。
一些客户端和库具有对此“功能”的内置保护,或者在默认情况下禁用它(例如 Golang,Python,PHP-PDO)。但并非所有都会这么做,正如 Adminer 案例所示。Adminer 很可能不会是最后一个出现该问题的
近期,大型商务网站和政府网站遭遇黑客通过Adminer数据库入侵,揭示了MySQL协议的潜在缺陷。此攻击利用了LOAD DATA语句中客户端指定文件的功能,尽管部分客户端如Golang、Python等已内置保护或默认禁用此功能,但Adminer等工具的安全性仍有待加强。

609

被折叠的 条评论
为什么被折叠?



