Jak uzyskać dostęp do CMS mając FTP?

Krótka, techniczna porada: jak dodać nowego administratora do WordPressa lub Joomli mając dostęp do FTP? Przydaje się gdy zabraknie dostępu do CMS z najróżniejszych przyczyn (od ataku hakerskiego który zmienił hasło po… Klienta który zapomniał hasło i nie ma dostępu do założycielskiego maila).

WordPress

1. Na serwerze w folderze głównym domeny znajduje się plik wp-config.php z danymi dostępowymi do bazy danych oraz jej lokalizacją:

Typowo baza znajduje się na tym samym serwerze (localhost) i wejść do niej można przez PhpMyAdmin, który jest dostępny pod: domena.pl/phpmyadmin/, domena.pl/pma/, domena.pl/sql/ lub domena.pl/mysql/. Jeżeli żaden z nich nie jest dostępny, informacje o jego lokalizacji powinien mieć dostawca hostingu (na swojej stronie lub za pośrednictwem supportu). W przypadku innej wartości niż localhost trzeba oczywiście wykorzystać ją jako domenę.

W tym samym pliku (zazwyczaj na dole) znajduje się zmienna $table_prefix – jeśli jej wartość jest różna od ‚wp_’ to należy zmienić prefiksy w poniższym kodzie z wp na ten określony w pliku.

2. Po zalogowaniu do PhpMyAdmin w menu „SQL” pozostaje wkleić poniższy kod uzupełniony o dane takie jak nazwa bazy danych, nazwa użytkownika czy hasło:

INSERT INTO `NAZWABAZYDANYCH`.`wp_users` (`ID`, `user_login`, `user_pass`, `user_nicename`, `user_email`, `user_url`, `user_registered`, `user_activation_key`, `user_status`, `display_name`) VALUES ('9', 'NAZWAUZYTKOWNIKA', MD5('HASLO'), 'NAZWAUZYTKOWNIKA', 'MAIL', '', '2015-06-07 00:00:00', '', '0', 'NAZWAUZYTKOWNIKA');

INSERT INTO `NAZWABAZYDANYCH`.`wp_usermeta` (`umeta_id`, `user_id`, `meta_key`, `meta_value`) VALUES (NULL, '9', 'wp_capabilities', 'a:1:{s:13:"administrator";s:1:"1";}');

INSERT INTO `NAZWABAZYDANYCH`.`wp_usermeta` (`umeta_id`, `user_id`, `meta_key`, `meta_value`) VALUES (NULL, '9', 'wp_user_level', '10');

Przycisk „Wykonaj” tworzy nowego administratora.

Joomla

1. W folderze głównym powinien znajdować się plik configuration.php z użytkownikiem bazy danych, hasłem i jej lokalizacją:

Z tymi danymi należy znaleźć panel logowania do PhpMyAdmin i zalogować się do niego. W przypadku lokalizacji localhost warto sprawdzić adresy: domena.pl/phpmyadmin/, domena.pl/pma/, domena.pl/sql/, domena.pl/mysql/. Dodatkowo jeżeli prefiks ($dbprefix) jest inny niż ‚jos_’ to należy zmodyfikować kod z punktu drugiego.

2. W PhpMyAdmin po wejściu w zakładkę „SQL” wystarczy wkleić poniższy kod uzupełniony o wytłuszczone dane:

INSERT INTO `NAZWABAZYDANYCH`.`jos_users` (`id`, `name`, `username`, `email`, `password`, `block`, `sendEmail`, `registerDate`, `lastvisitDate`, `activation`, `params`) VALUES ('9', 'NAZWAUZYTKOWNIKA', 'NAZWAUZYTKOWNIKA', 'MAIL', MD5('HASLO'), '0', '0', '2015-06-07 00:00:00', '2015-06-07 00:00:00', '', '');

INSERT INTO `NAZWABAZYDANYCH`.`jos_user_usergroups_map` (`user_id`, `group_id`) VALUES ('9', '8');

Po wciśnięciu „Wykonaj” konto o randze super administratora będzie już gotowe.


Dla wyjadaczy SEO z pewnością są to banalne wskazówki, ale powyższy kod jako ściągawka do kopiuj-wklej będzie pomocna dla wielu mniej zaawansowanych użytkowników – większość artykułów poruszających ten temat proponuje mozolne wstawianie wartości. Tymczasem z wykorzystaniem prostego SQL można znacznie przyspieszyć odzyskanie kontroli nad stroną, którą się opiekujemy.

Komentarze: 3

  • DMati

    DMati

    Odpowiedz

    No i po co taki onetowski tytuł? Skoro dostep przydzielasz przez phpmyadmin?

    PS jest wp, jest joomla czyli te top, to gdzie drupal?

    • Rafał Grochala

      Rafał Grochala

      Odpowiedz

      Zdeonetyzowałem tytuł 😉 przez usunięcie ‚tylko’. Z drupalem nie miałem na tyle do czynienia żebym musiał się ratować takimi metodami, więc ich nie opisałem. Nie podpisałbym się pod czymś czego nie sprawdziłem w praktyce.

  • Łukasz

    Łukasz

    Odpowiedz

    A co w przypadku kiedy phpMyAdmin nie jest wystawiony na światło dzienne? Może by tak podać skrypty w php w tworzenia nowych użytkowników?

Skomentuj

Twój email nie zostanie upubliczniony. Wymagane pola zostały oznaczone *
Możesz używać następujących tagów HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>