帮助查找此 MySQL 页面中的安全漏洞?
Posted
技术标签:
【中文标题】帮助查找此 MySQL 页面中的安全漏洞?【英文标题】:Help find security flaws in this MySQL page? 【发布时间】:2011-01-22 10:20:51 【问题描述】:我正在尝试查找 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
正如我所想,用户似乎缺乏执行此操作所需的权限。还是我误会了什么?
【问题讨论】:
Usage 是有限的,我错了我以为它可以修改所有的数据库和表,我的错。尽管有这些特权,您仍然必须小心如何构建查询。 Sql 注入和“不安全的直接对象引用”仍然是你面临的问题。 【参考方案1】:*.*
表示所有数据库上的所有表。
安全漏洞在 php 中比在 msyql 中发生的更多,有关常见问题,请参阅此 Wikipedia 文章:SQL Injection。
GRANT USAGE
表示no privileges。
【讨论】:
以上是关于帮助查找此 MySQL 页面中的安全漏洞?的主要内容,如果未能解决你的问题,请参考以下文章
为帮助保护你的安全,您的Web浏览器已经限制此文件显示可能访问您的计算机的活动内容
在 MySQL 中存储 html 的 100% 安全方式 [关闭]