2008-09-19 17 views
5

Podejmowanie dziwnego scenariusza tutaj.Wstrzykiwanie konta użytkownika do mySQL

Używamy zastrzeżonej aplikacji do zarządzania stacjami roboczymi, która używa MySQL do przechowywania swoich danych. W ramach aplikacji udostępniają one szereg raportów, takich jak użytkownik, który zalogował się do której maszyny, o której godzinie, wszystkie produkty oprogramowania zainstalowane na monitorowanych maszynach, itd. Szukamy innego zestawu raportów, ale nie obsługują one raportów niestandardowych.

Ponieważ ich dane są przechowywane w mySQL, zbieram się, że mogę wykonać raportowanie ręcznie. Nie mam jednak prawidłowych poświadczeń, aby połączyć się z serwerem mySQL. Czy mogę utworzyć konto użytkownika na serwerze mySQL? Nie chcę resetować hasła root ani żadnych kont, które mogą tam być, ponieważ może to spowodować uszkodzenie aplikacji.


Mam pełny dostęp do serwera Windows 2003. Mogę zatrzymać i ponownie uruchomić usługi, w tym serwer mySQL. Do rzeczywistego serwera MySQL mam tylko podstawowy dostęp przez GUI dostarczone przez oprogramowanie. Nie mogę połączyć się z nim bezpośrednio przez interfejs CLI lub inne narzędzie (ze względu na brak poświadczeń).


Przepraszam, jeśli przyszło mi tak, jakbym próbował uzyskać nieautoryzowany dostęp do serwera mySQL. Skontaktowałem się z firmą zajmującą się oprogramowaniem i od dzisiaj minęły dwa tygodnie bez odpowiedzi. Muszę dostać się do danych. Mam pełny dostęp do skrzynki fizycznej, mam uprawnienia administratora.

Odpowiedz

9

Będziesz chciał użyć procesu odzyskiwania hasła MySQL. Postępuj zgodnie z these instructions, z wyjątkiem zastąpienia zapytania resetowania hasła zapytaniem na add a new user. Nowe zapytanie użytkownika byłoby coś jak:

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

To spowoduje utworzenie nowego użytkownika „myuser” z hasłem „moje_hasło”, którzy mogą zalogować się do MySQL poprzez CLI systemu lokalnego. Następnie możesz użyć interfejsu GUI administratora MySQL (download here) i zaktualizować uprawnienia użytkownika, aby móc logować się z innych systemów w sieci. Lub użyj GRANT statement z CLI, jeśli jest to bardziej Twój styl.

+0

Tego właśnie szukałem. Dziękuję Ci. – Nasir

+0

Problem polega na tym, że resetuje hasło roota, co oznacza, że ​​jeśli aplikacja jest zależna od znanego hasła root, to już nie jest tak ... a użytkownik specjalnie nie chciał resetować hasła root. – delfuego

+1

Och, widzę - tak, to zadziała fantastycznie. Miły. Przepraszam za bycie głupcem. – delfuego

0

Czy masz dostęp do serwera MySQL, o którym mowa?

W jaki sposób masz dostęp poza to, co zwykły użytkownik? Powinieneś spróbować przejść przez te trasy, zanim "zhakujesz" tam swoją drogę, ponieważ to może, ale nie musi być możliwe z tym oprogramowaniem.

0

Zakładam, że naprawdę nie powinienem odpowiadać na to pytanie, ale to za dużo zabawy.

Spójrz na stronę This o zastrzykach SQL. To powinno pokryć twoje potrzeby. This strona pokazuje jak dodać konta użytkowników do MySQL

chciałbym spróbować wpisując w polach wprowadzania losowych użytkowników:

p'; INSERT INTO user VALUES 

('localhost', 'myNewAdmin', hasło ('some_pass'), "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y", " Y "," Y ");

i

p'; FLUSH PRIVILEGES; 

P '; ma na celu zamknięcie zwykłego pytania. przykład - Normal pytanie brzmi:

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

staje

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

Nie mam nic przeciwko wyborom, ale wolałbym wiedzieć, co się stało. Wygląda na to, że odpowiadam na to pytanie.Jeśli się mylę w swojej odpowiedzi, zasługuję na kilka pochlebstw, ale zostaw komentarz, aby pytający wiedział, że moja odpowiedź nie jest godna zaufania. – Tnilsson

+0

Ja przegłosowałem, ponieważ jeśli jesteś zamknięty w domu, rozwiązaniem jest ślusarz - - Nie piła do metalu. –

+0

przegłosowano, ponieważ jest to rozwiązanie i jest to interesujący odczyt :) – Sophia

0

Jedną rzeczą, która przychodzi na uwadze jest wąchania komunikację z bazą danych i nadzieję, że nie jest szyfrowana. Jeśli jest zaszyfrowany spróbuj zmienić konfigurację, aby nie używać SSL i zrestartuj mysql.Dobrym sniffer, że używam jest Wireshark

Od mysql 5.0 documentation:

MySQL obsługuje bezpieczne (szyfrowane) połączenia między klientami MySQL i z serwerem za pomocą bezpiecznego protokołu Layer (SSL) Gniazda. W tej sekcji omówiono sposób korzystania z połączeń SSL. Opisano również sposób konfiguracji SSH w systemie Windows. Aby uzyskać informacje na temat, w jaki sposób wymagają użytkownicy do korzystania z połączeń SSL, zobacz omówienie klauzuli REQUIRE instrukcji GRANT w Sekcja 12.5.1.3, "Składnia GRANT".

Standardowa konfiguracja MySQL jest ma być tak szybko, jak to możliwe, więc szyfrowane połączenia nie są używane przez domyślnie. Takie działanie znacznie spowolniłoby protokół klient/serwer . Szyfrowanie danych jest operacją wymagającą dużego obciążenia procesora , która wymaga od komputera wykonywania dodatkowej pracy i może opóźniać inne zadania MySQL. W przypadku aplikacji , które wymagają zabezpieczenia zapewnianego przez zaszyfrowanych połączeń, wymagane jest dodatkowe obliczenie .

MySQL umożliwia włączenie szyfrowania dla każdego połączenia. Można wybrać normalne niezaszyfrowane połączenie lub bezpieczne szyfrowane połączenie SSL zgodnie z wymaganiami poszczególnych aplikacji.

Bezpieczne połączenia są oparte na interfejsie API OpenSSL i są dostępne przez interfejsu API MySQL. Replikacja używa interfejsu API C , więc bezpieczne połączenia mogą być używane między serwerem głównym a serwerem podrzędnym.

Prawdopodobnie już to zrobiłeś, ale mimo to - spróbuj przeszukać pliki konfiguracyjne aplikacji. Jeśli nic nie ma - spróbuj przeszukać pliki wykonywalne/kod źródłowy - może być w zwykłym tekście, jeśli masz szczęście.

0

Istnieje prawdopodobieństwo, że po stronie bazy danych istnieją wyzwalacze prowadzące dziennik, więc po włamaniu się do bazy danych będą wiedzieli, kiedy i jak to zrobiliście. To nie jest dobry pomysł.

+0

Powiedziałbym, że szalenie jest myśleć, że jest jakiś rodzaj wyzwalacza w DB, który uruchamia się, gdy nieznany użytkownik loguje się. Jak oni skonfigurują architekturę wesprzeć to? Czy istnieje również wbudowany klient SMTP, który odsyła alert? Jakiego serwera pocztowego? Prawdopodobieństwo tego jest zerowe. – delfuego

Powiązane problemy