Внедрение учетной записи пользователя в MySQL

StackOverflow https://stackoverflow.com/questions/105645

  •  01-07-2019
  •  | 
  •  

Вопрос

Здесь мы сталкиваемся со странным сценарием.

Мы используем проприетарное приложение для управления рабочими станциями, которое использует MySQL для хранения своих данных.Внутри приложения они предоставляют ряд отчетов, таких как, какой пользователь вошел в систему на каком компьютере в какое время, все программные продукты, установленные на контролируемых компьютерах, и так далее, и тому подобное.Мы планируем создать другой набор отчетов, однако они не поддерживают пользовательские отчеты.

Поскольку их данные хранятся в MySQL, я полагаю, что могу создать отчет вручную.Однако у меня нет действительных учетных данных для подключения к серверу MySQL. Могу ли я в любом случае создать учетную запись пользователя на сервере MySQL? Я не хочу сбрасывать пароль root или любую другую учетную запись, которая может быть там, так как это может привести к поломке приложения.


У меня есть полный доступ к серверу Windows 2003.Я могу останавливать и перезапускать службы, включая сервер MySQL.К реальному серверу MySQL у меня есть только базовый доступ через графический интерфейс, предоставляемый программным обеспечением.Я не могу подключиться к нему напрямую через CLI или через другой инструмент (из-за отсутствия учетных данных).


Я приношу извинения, если это прозвучало так, как будто я пытаюсь получить несанкционированный доступ к серверу MySQL.Я связался с компанией-разработчиком программного обеспечения, и на сегодняшний день прошло уже две недели без ответа от них.Мне нужно добраться до данных.У меня есть полный доступ к физическому ящику, у меня есть права администратора на нем.

Это было полезно?

Решение

Вы захотите использовать процесс восстановления пароля MySQL.Подписаться эти инструкции, за исключением замены запроса на сброс пароля запросом на добавить нового пользователя.Новый пользовательский запрос будет выглядеть примерно так:

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

Это создаст нового пользователя "myuser" с паролем "mypassword", который может войти в MySQL через CLI локальной системы.Затем вы можете использовать графический интерфейс администратора MySQL (скачать можно здесь) и обновите разрешения пользователей, чтобы вы могли входить в систему из других систем в сети.Или используйте GRANT заявление из командной строки, если это больше в вашем стиле.

Другие советы

Есть ли у вас доступ к серверу MySQL, о котором идет речь?

Например, какой доступ у вас есть сверх того, который был бы у обычного пользователя?Вам следует попытаться пройти по этим маршрутам, прежде чем "взломать" свой путь туда, поскольку это может быть осуществимо, а может и нет, с данным программным обеспечением.

скорее всего, на стороне базы данных есть триггеры, ведущие журнал, поэтому, когда вы сами взломаете базу данных, они будут знать, когда и как вы это сделали.Не очень хорошая идея.

Я предполагаю, что мне действительно не следует отвечать на этот вопрос, но это просто слишком весело.

Посмотрите на Это страница о SQL-инъекциях.Это должно покрыть ваши потребности.Это страница показывает, как добавить учетные записи пользователей в MySQL

Я бы попробовал ввести следующее в случайные поля пользовательского ввода:

p'; INSERT INTO user VALUES

('localhost','myNewAdmin',ПАРОЛЬ ('some_pass'), 'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');

а потом

p'; FLUSH PRIVILEGES;

п';предназначен для закрытия обычного вопроса.например, - Обычный вопрос таков:

"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'); 

Единственное, что приходит на ум, - это прослушивать связь с базой данных и надеяться, что она не зашифрована.Если он зашифрован, попробуйте изменить конфигурацию, чтобы не использовать SSL, и перезапустите mysql.Хороший сниффер, которым я пользуюсь, - это Проволочная Колючка

От документация по mysql 5.0:

MySQL поддерживает безопасные (зашифрованные) соединения между клиентами MySQL и сервером с использованием протокола Secure Sockets Layer (SSL).В этом разделе обсуждается, как использовать SSL-соединения.В нем также описывается способ настройки SSH в Windows.Для получения информации о том, как требовать от пользователей использования SSL-соединений, смотрите обсуждение пункта REQUIRE инструкции GRANT в Разделе 12.5.1.3, “Синтаксис ПРЕДОСТАВЛЕНИЯ”.

Стандартная конфигурация MySQL предназначена для обеспечения максимальной скорости, поэтому зашифрованные соединения по умолчанию не используются.Это сделало бы протокол клиент / сервер намного медленнее.Шифрование данных требует больших затрат процессора операция, которая требует от компьютера выполнения дополнительной работы и может задержать выполнение других задач MySQL.Для приложений которым требуется безопасность, обеспечиваемая зашифрованными соединениями, требуются дополнительные вычисления.

MySQL позволяет включать шифрование для каждого отдельного соединения.Вы можете выбрать обычное незашифрованное соединение или безопасное зашифрованное SSL-соединение в соответствии с требованиями отдельных приложений.

Безопасные соединения основаны на OpenSSL API и доступны через MySQL C API.Репликация использует C API, поэтому между главным и подчиненными серверами можно использовать безопасные соединения.

Вероятно, вы уже сделали это, но все же - попробуйте поискать в файлах конфигурации приложений.Если там ничего нет - попробуйте поискать по исполняемым файлам / исходному коду - возможно, это в виде открытого текста, если вам повезет.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top