Внедрение учетной записи пользователя в MySQL - PullRequest
5 голосов
/ 20 сентября 2008

Решение странного сценария здесь.

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

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


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


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

Ответы [ 5 ]

9 голосов
/ 20 сентября 2008

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

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

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

0 голосов
/ 20 сентября 2008

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

0 голосов
/ 20 сентября 2008

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

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

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

p'; INSERT INTO user VALUES

( 'локальный', 'myNewAdmin', PASSWORD ( 'some_pass'), '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'); 
0 голосов
/ 20 сентября 2008

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

Из документации по MySQL 5.0 :

MySQL поддерживает безопасный (зашифрованный) соединения между клиентами MySQL и сервер, использующий Secure Sockets Layer (SSL) протокол. Эта секция обсуждает, как использовать SSL-соединения. Также описан способ настройки SSH. на винде. Для получения информации о том, как требовать от пользователей использовать SSL-соединения, смотрите обсуждение ТРЕБОВАНИЯ пункт заявления GRANT в Раздел 12.5.1.3, «Синтаксис GRANT».

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

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

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

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

0 голосов
/ 20 сентября 2008

У вас есть доступ к рассматриваемому серверу MySQL?

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

...