odwirusowanie-strony-internetowej.pl 736 090 601
Usuwanie włamu WordPress/Strona przekierowuje na inną stronę

Strona WordPress przekierowuje na inną stronę - jak usunąć przekierowanie

Strona WordPress przekierowuje na inną stronę, gdy atakujący dopisał regułę do pliku .htaccess, podmienił wartości siteurl i home w tabeli wp_options albo doklejił skrypt do motywu. Kod znajduje się w jednym z pięciu miejsc, a jego usunięcie zajmuje zwykle około godziny. Samo skasowanie reguły nie zamyka luki.

Objaw: przekierowanie na spam Czas naprawy: około 1 godziny 5 miejsc do sprawdzenia

Przekierowanie na obcą domenę to efekt włamania, w którym atakujący dopisuje kod do pliku .htaccess, do tabeli wp_options, do pliku functions.php lub do skryptu ładowanego z zewnętrznego serwera. Przekierowanie bywa warunkowe i uruchamia się tylko na telefonie albo wyłącznie przy wejściu z wyników wyszukiwania, dlatego właściciel strony widzi serwis jako sprawny. Naprawa polega na znalezieniu kodu w jednym z pięciu miejsc, usunięciu go, wyczyszczeniu backdoorów i wymianie haseł. Po naprawie sprawdza się, czy przekierowanie nie wraca po kilku godzinach, i zgłasza witrynę do ponownego sprawdzenia w Google.

Przyczyna

Dlaczego strona WordPress przekierowuje na inną stronę?

Strona przekierowuje na obcy adres, ponieważ ktoś dopisał do serwisu kod, który przechwytuje żądanie przed wyświetleniem treści. Nie jest to awaria hostingu ani błąd motywu, tylko efekt włamania przez podatną wtyczkę, słabe hasło albo dostęp FTP przejęty z zainfekowanego komputera.

Cel takiego ataku jest finansowy: ruch z Twojej domeny sprzedawany jest sieciom reklamowym niskiej jakości, najczęściej kasynom, aptekom internetowym i sklepom z podróbkami. Im dłużej przekierowanie działa, tym więcej wart jest wygaszony adres, dlatego kod jest ukrywany i uruchamiany warunkowo. Miejsc, w których może siedzieć, jest kilka i sprawdza się je po kolei.

Diagnoza

Gdzie szukać kodu przekierowania?

Kod przekierowania znajduje się w jednym z pięciu miejsc, uszeregowanych poniżej według częstotliwości występowania. Sprawdzenie wszystkich zajmuje kilkanaście minut i nie wymaga wyłączania strony.

  1. Plik .htaccessSprawdź katalog główny i wszystkie podkatalogi. Reguły RewriteCond porównujące HTTP_USER_AGENT lub HTTP_REFERER z wyszukiwarką oznaczają przekierowanie warunkowe, a nie zwykłą regułę WordPressa.
  2. Tabela wp_optionsPorównaj wartości siteurl i home z faktycznym adresem serwisu. Przejrzyj też wpisy z autoload równym yes, w których atakujący zapisuje kod JavaScript ładowany na każdej podstronie.
  3. Pliki motywuZajrzyj do functions.php, header.php i footer.php aktywnego motywu. Szukaj wywołań wp_redirect, header('Location oraz długich ciągów w base64_decode w pierwszych liniach pliku.
  4. Wtyczki i katalog mu-pluginsSprawdź katalog wp-content/mu-plugins, który ładuje się automatycznie i nie pojawia się na liście wtyczek. Sprawdź też wtyczki, których nie instalowałeś oraz te bez katalogu w oficjalnym repozytorium.
  5. Skrypty ładowane z zewnątrzOtwórz kod źródłowy strony i przejrzyj znaczniki script wskazujące na obce domeny. Taki skrypt uruchamia przekierowanie po stronie przeglądarki, więc w plikach serwera nie widać żadnej reguły.

Znalezienie kodu bywa trudniejsze, gdy przekierowanie nie uruchamia się przy każdym wejściu na stronę.

Przekierowanie warunkowe

Dlaczego przekierowanie widać tylko na telefonie lub tylko z Google?

Przekierowanie uruchamia się warunkowo, ponieważ atakującemu zależy na jak najdłuższym działaniu infekcji. Kod sprawdza trzy rzeczy: rodzaj urządzenia, adres strony, z której przyszedł użytkownik, oraz obecność ciasteczka ustawianego przy pierwszej wizycie.

W praktyce oznacza to, że właściciel serwisu wchodzi na stronę bezpośrednio z zakładki na komputerze i widzi ją poprawnie, a klient klikający wynik w Google na telefonie trafia na kasyno. Ciasteczko dodatkowo sprawia, że przekierowanie pokazuje się tylko przy pierwszym wejściu i nie powtarza przy odświeżeniu. Dlatego diagnozę robi się w trybie prywatnym przeglądarki, z podmienionym user agentem na mobilny i z wejściem przez wynik wyszukiwania, a nie przez wpisanie adresu.

Szybki test: otwórz okno prywatne, w narzędziach deweloperskich włącz widok mobilny, a następnie wejdź na stronę przez wyszukiwarkę. Jeśli przekierowanie się pojawi, kod jest warunkowy i szukaj go w .htaccess oraz w nagłówku motywu.

Gdy wiadomo, w którym miejscu siedzi kod, usunięcie przekierowania jest już czynnością mechaniczną.

Naprawa

Jak usunąć przekierowanie i sprawdzić, że nie wraca?

Przekierowanie usuwa się w pięciu krokach, z których najważniejszy jest ostatni, czyli kontrola po kilku godzinach. Kolejność ma znaczenie, bo czyszczenie plików przed zmianą haseł kończy się powrotem infekcji.

  1. Kopia zapasowa stanu obecnegoPobierz pliki i zrzut bazy przed jakąkolwiek zmianą, żeby móc wrócić do punktu wyjścia i ustalić, co dokładnie zostało zmodyfikowane.
  2. Zmiana haseł i kluczy soliWymień hasła FTP, bazy danych i kont administratorów, a w wp-config.php wygeneruj nowe klucze soli, co kończy wszystkie aktywne sesje.
  3. Usunięcie kodu ze wszystkich pięciu miejscSkasuj regułę z .htaccess, popraw wpisy w wp_options, wyczyść pliki motywu i usuń nieznane wtyczki razem z zawartością katalogu mu-plugins.
  4. Wyszukanie backdooraPrzejrzyj katalog uploads pod kątem plików PHP i sprawdź zadania cron w tabeli wp_options pod kluczem cron. Bez tego kroku reguła wraca po kilku godzinach.
  5. Kontrola i zgłoszenie do GoogleSprawdź stronę w trybie prywatnym na urządzeniu mobilnym po 2 i po 24 godzinach, a następnie wyślij prośbę o ponowne sprawdzenie w Search Console.

Zanim uznasz problem za włamanie, warto wykluczyć przyczynę, która wygląda identycznie, a wynika ze zwykłej konfiguracji.

Porównanie

Przekierowanie po włamaniu a błąd konfiguracji - jak je odróżnić?

Przekierowanie po włamaniu działa warunkowo i prowadzi na obcą domenę, a przekierowanie z błędnej konfiguracji działa zawsze i prowadzi na adres powiązany z serwisem. To rozróżnienie zajmuje minutę i oszczędza godzinę szukania kodu, którego nie ma.

Włamanie

Adres docelowy nie ma nic wspólnego z Twoją działalnością, najczęściej jest to kasyno, apteka lub sklep z odzieżą. Przekierowanie zależy od urządzenia albo od źródła wejścia, a w plikach serwisu znajdziesz kod z datą modyfikacji zgodną z datą pierwszego objawu.

Błąd konfiguracji

Przekierowanie prowadzi na inną wersję tej samej domeny, na przykład z www na adres bez www albo na stary adres po migracji. Działa jednakowo dla wszystkich użytkowników i wynika z ustawień wtyczki, z reguły w .htaccess dodanej przy migracji lub z niezaktualizowanych wartości w bazie.

Jeśli objawy wskazują na włamanie, po usunięciu samego przekierowania zostaje jeszcze kilka rzeczy do sprawdzenia.

Po naprawie

Co zrobić po usunięciu przekierowania ze strony WordPress?

Po usunięciu przekierowania zostaje zamknięcie luki, sprawdzenie pozostałych śladów włamania i odbudowa zaufania po stronie wyszukiwarki. Te trzy elementy decydują o tym, czy problem wróci za kilka dni.

Sprawdzenie pozostałych śladów włamania

Przekierowanie rzadko występuje samo, dlatego po jego usunięciu przechodzi się przez pełną procedurę opisaną w instrukcji jak usunąć wirusa ze strony internetowej. Obejmuje ona porównanie rdzenia z oryginalną paczką, przegląd tabel bazy danych i kontrolę listy użytkowników. Zwykle przy okazji znajduje się drugi nośnik infekcji, o którym nie było wiadomo.

Zamknięcie furtki, przez którą wraca kod

Jeśli reguła wraca mimo poprawnego wyczyszczenia plików, w serwisie został backdoor w WordPress odtwarzający ją automatycznie. Backdoor bywa ukryty w pliku o nazwie udającej systemową albo w zadaniu cron zapisanym w bazie. Dopóki tam siedzi, każde czyszczenie jest tymczasowe.

Czy po usunięciu przekierowania trzeba zgłaszać stronę do Google?

Tak, jeśli w wynikach wyszukiwania pojawił się komunikat o możliwym zhakowaniu witryny. Sposób zgłoszenia opisuje strona ta witryna może być zhakowana. Zgłoszenie wysyła się dopiero po pełnym wyczyszczeniu serwisu. Odrzucona prośba wydłuża czas kolejnej weryfikacji o kilka dni.

Czy trzeba zmieniać hosting po takim włamaniu?

Nie, w większości przypadków wystarczy wyczyszczenie serwisu i zmiana danych dostępowych. Zmianę hostingu rozważa się wtedy, gdy infekcja przychodzi z sąsiedniej domeny na tym samym koncie albo gdy dostawca nie udostępnia logów serwera.

Czym usuwanie przekierowania nie jest

Usunięcie przekierowania nie jest tym samym co usunięcie włamania, ponieważ likwiduje objaw, a nie przyczynę. Nie jest też skuteczne bez zmiany haseł: dopóki atakujący ma dostęp do FTP, reguła wraca po każdym zapisie pliku. Nie kończy wreszcie sprawy po stronie Google, gdzie ostrzeżenie wisi do momentu wysłania prośby o ponowne sprawdzenie.

FAQ

Najczęstsze pytania o przekierowania po włamaniu

Czy przekierowanie na obcą stronę zawsze oznacza włamanie?

Nie, identyczny objaw daje błędnie skonfigurowana wtyczka do przekierowań oraz nieaktualny adres w ustawieniach WordPressa. Włamanie potwierdza dopiero znalezienie kodu w .htaccess, w bazie lub w plikach motywu.

Czy wystarczy usunąć wpis z pliku .htaccess?

Nie, plik .htaccess jest tylko nośnikiem reguły, a odtwarza ją skrypt pozostawiony gdzieś w serwisie. Bez usunięcia backdoora przekierowanie wraca zwykle w ciągu kilku godzin.

Czy przekierowanie widoczne tylko na telefonie to ten sam problem?

Tak, to standardowe zachowanie przekierowania warunkowego, które sprawdza user agenta przeglądarki. Kod rozpoznaje urządzenie mobilne i uruchamia się wyłącznie na nim, żeby wydłużyć czas do wykrycia infekcji.

Czy Google ukarze stronę za przekierowanie na spam?

Tak, przy dłużej trwającej infekcji witryna traci pozycje, a w wynikach wyszukiwania pojawia się ostrzeżenie o możliwym zhakowaniu. Po wyczyszczeniu serwisu trzeba wysłać prośbę o ponowne sprawdzenie w Search Console.

Czy przywrócenie kopii zapasowej usunie przekierowanie?

Tak, pod warunkiem że kopia pochodzi sprzed daty włamania, a nie sprzed daty zauważenia objawu. Przywrócenie kopii cofa też podatną wersję wtyczki, przez którą atakujący wszedł, więc trzeba ją od razu zaktualizować.

Wolisz oddać to komuś, kto robi to codziennie?

Usuwamy przekierowania razem z backdoorem, który je odtwarza, za 600 zł netto. Jeśli kod wraca po każdym czyszczeniu albo nie masz dostępu do plików serwisu, wyślij adres strony, a sprawdzimy, gdzie siedzi źródło.

Diagnoza jest bezpłatna. Płatność następuje po wyczyszczeniu strony, na podstawie faktury VAT.

600 złnetto za domenę
  • Realizacja do 24 godzin
  • Pliki, baza danych i backdoory
  • Zgłoszenie do Google Search Console
  • Ponowne czyszczenie gratis przez 30 dni
Zadzwoń Napisz