我正在尝试在 MySQL 页面中查找安全漏洞。这是一个学习 SQL 的班级的作业。通过文本框,他们可以访问数据库以提交查询并查看它是否返回正确的数据集。我想知道他们是否可以做任何恶意的事情。
这是SHOW GRANTS
查询的结果:
Grants for user@localhost
GRANT USAGE ON *.* TO 'user'@'localhost' IDENTIFIED BY PASSWORD 'the password'
GRANT SELECT ON `server\_dir`.* TO 'user'@'localhost'
GRANT SELECT ON `server\_dir\_ans`.* TO 'user'@'localhost'
有人可以解释这些GRANT
陈述的含义吗?什么是*.*
和GRANT USAGE
?我还能对这个网站做些什么来破坏它?
该网站本身是用 PHP 编写的。
作为对 The Rook 的回应,当我执行时:
UPDATE mysql.user set Password = password("hacked");
FLUSH PRIVILEGES;
我回来了:
Error Number: 1142. UPDATE command denied to user 'user'@'localhost' for table 'user'
Error Number: 1227. Access denied; you need the RELOAD privilege for this operation
正如我所想,用户似乎缺乏执行此操作所需的权限。还是我误解了什么?