5

在这里处理一个奇怪的场景。

我们使用专有的工作站管理应用程序,该应用程序使用 mySQL 来存储其数据。在应用程序中,它们提供了许多报告,例如哪个用户在什么时间登录了哪台机器,安装在被监控机器上的所有软件产品等等。我们正在寻找一组不同的报告,但是,它们不支持自定义报告。

由于他们的数据存储在 mySQL 中,我认为我可以手动进行报告。我没有有效的凭据来连接到 mySQL 服务器。无论如何我可以在 mySQL 服务器中创建用户帐户吗?我不想重置 root 密码或任何可能存在的帐户,因为它可能会破坏应用程序。


我拥有对 Windows 2003 服务器的完全访问权限。我可以停止和重新启动服务,包括 mySQL 服务器。对于实际的 mySQL 服务器,我只能通过软件提供的 GUI 进行基本访问。我无法通过 CLI 或其他工具直接连接到它(由于缺少凭据)。


如果它像我试图未经授权访问 mySQL 服务器一样脱落,我深表歉意。我已经联系了软件公司,到今天已经两周没有收到他们的回复。我需要获取数据。我对物理盒子有完全的访问权限,我对它有管理员权限。

4

5 回答 5

9

您需要使用 MySQL 密码恢复过程。遵循这些说明,除了将密码重置查询替换为添加新用户的查询。新的用户查询将类似于:

GRANT ALL ON *.* TO 'myuser'@'localhost' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;

这将创建一个密码为“mypassword”的新用户“myuser”,该用户可以通过本地系统的 CLI 登录 MySQL。然后,您可以使用 MySQL 管理员 GUI(在此处下载)并更新用户权限,以便您可以从网络上的其他系统登录。或者使用 CLI 中的GRANT语句,如果这更符合您的风格。

于 2008-09-19T21:31:32.300 回答
0

您是否有权访问相关的 MySQL 服务器?

例如,除了普通用户之外,您还有哪些访问权限?在“破解”你的方式之前,你应该尝试通过这些路线,因为使用该软件可能会也可能不会。

于 2008-09-19T21:11:42.363 回答
0

我想我真的不应该回答这个问题,但这太有趣了。

查看有关 SQL 注入的此页面。那应该可以满足您的需求。 页面显示如何将用户帐户添加到 mySQL

我会尝试在随机用户输入字段中输入以下内容:

p'; INSERT INTO user VALUES

('localhost','myNewAdmin',PASSWORD('some_pass'),'Y','Y','Y','Y','Y','Y','Y','Y','Y ','Y','Y','Y','Y','Y');

进而

p'; FLUSH PRIVILEGES;

p'; 旨在关闭常规问题。例如 - 正常问题是:

"Select Adress from cusomers where custName = ' + $INPUT + ';

变成

    Select Adress from cusomers where custName = 'p'; INSERT INTO user 
VALUES('localhost','myNewAdmin',PASSWORD('some_pass'), 
'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y'); 
于 2008-09-19T21:13:55.057 回答
0

想到的一件事是嗅探数据库通信并希望它没有被加密。如果已加密,请尝试更改配置以不使用 SSL 并重新启动 mysql。我使用的一个很好的嗅探器是Wireshark

来自mysql 5.0 文档

MySQL 使用安全套接字层 (SSL) 协议支持 MySQL 客户端和服务器之间的安全(加密)连接。本节讨论如何使用 SSL 连接。它还描述了一种在 Windows 上设置 SSH 的方法。有关如何要求用户使用 SSL 连接的信息,请参阅第 12.5.1.3 节,“GRANT 语法”中对 GRANT 语句的 REQUIRE 子句的讨论。

MySQL 的标准配置旨在尽可能快,因此默认情况下不使用加密连接。这样做会使客户端/服务器协议慢得多。加密数据是一项 CPU 密集型操作,需要计算机执行额外的工作,并且可能会延迟其他 MySQL 任务。对于需要加密连接提供的安全性的应用程序,需要额外的计算。

MySQL 允许在每个连接的基础上启用加密。您可以根据个别应用的需求选择普通的未加密连接或安全的加密 SSL 连接。

安全连接基于 OpenSSL API,可通过 MySQL C API 获得。复制使用 C API,因此可以在主服务器和从服务器之间使用安全连接。

您可能已经这样做了,但仍然 - 尝试搜索应用程序配置文件。如果什么都没有 - 尝试搜索可执行文件/源代码 - 如果幸运的话,也许它是纯文本的。

于 2008-09-19T21:15:01.357 回答
0

很可能在数据库端有触发器来保存日志,因此当您将自己侵入数据库时​​,他们会知道您何时以及如何做到这一点。不是一个好主意。

于 2008-09-19T21:19:39.567 回答