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

Здесь идет речь о странном сценарии.

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

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


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


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

Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
В предыдущем посте мы создали функциональность вставки и чтения для нашей динамической СУБД. В этом посте мы собираемся реализовать функции обновления...
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Роли и разрешения пользователей без пакета Laravel 9
Роли и разрешения пользователей без пакета Laravel 9
Этот пост изначально был опубликован на techsolutionstuff.com .
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
5
0
861
5
Перейти к ответу Данный вопрос помечен как решенный

Ответы 5

У вас есть доступ к рассматриваемому серверу 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 ');

а потом

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

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

Tnilsson 20.09.2008 01:37

Я проголосовал против, потому что, если вас заперли в доме, решение - слесарь, а не ножовка.

John Millikin 20.09.2008 01:42

проголосовали за, потому что это решение и интересное чтение :)

Sophia 26.05.2009 06:48

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

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

MySQL supports secure (encrypted) connections between MySQL clients and the server using the Secure Sockets Layer (SSL) protocol. This section discusses how to use SSL connections. It also describes a way to set up SSH on Windows. For information on how to require users to use SSL connections, see the discussion of the REQUIRE clause of the GRANT statement in Section 12.5.1.3, “GRANT Syntax”.

The standard configuration of MySQL is intended to be as fast as possible, so encrypted connections are not used by default. Doing so would make the client/server protocol much slower. Encrypting data is a CPU-intensive operation that requires the computer to do additional work and can delay other MySQL tasks. For applications that require the security provided by encrypted connections, the extra computation is warranted.

MySQL allows encryption to be enabled on a per-connection basis. You can choose a normal unencrypted connection or a secure encrypted SSL connection according the requirements of individual applications.

Secure connections are based on the OpenSSL API and are available through the MySQL C API. Replication uses the C API, so secure connections can be used between master and slave servers.

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

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

Я бы сказал, безумие думать, что в БД есть какой-то триггер, который срабатывает, когда неизвестный пользователь входит в систему. Как бы они настроили архитектуру для поддержки этого? Есть ли встроенный SMTP-клиент, который отправляет оповещения по почте? С помощью какого почтового сервера? Вероятность этого равна нулю.

delfuego 20.09.2008 01:37
Ответ принят как подходящий

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

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

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

Это именно то, что я искал. Спасибо.

Nasir 20.09.2008 01:37

Проблема заключается в том, что он сбрасывает пароль root, а это означает, что если приложение зависит от известного пароля root, это уже не так ... и пользователь специально не хотел сбрасывать пароль root.

delfuego 20.09.2008 01:38

О, я понимаю - да, это будет фантастически работать. Отлично. Извини, что был тупицей.

delfuego 20.09.2008 01:39

delfuego, поэтому я посоветовал заменить запрос, который действительно сбрасывает пароль, тем, который добавляет нового пользователя.

John Millikin 20.09.2008 01:40

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