O podatnościach najpopularniejszego systemu zarządzania treścią – WordPressa napisano już wiele, a sam system zyskał sławę dziurawego jak szwajcarski ser. Tymczasem statystyki podają, że to nie sam CMS jest winny większości błędów i wycieków pojawiających się na stronach, które są o niego oparte.
Według danych zebranych przez WPScan, tylko 2% wszystkich podatności pochodzi z kodu źródłowego WordPressa. Duża większość, bo aż 94% luk bezpieczeństwa zostało znalezionych w pluginach, które użytkownicy instalują na swoich stronach internetowych. Pozostałe 4% to motywy, czyli szablony tychże serwisów.
Jaki jest cel ataków na strony oparte o WordPress?
Wykorzystanie podatności na stronach WordPress może przybierać różne formy, w zależności od rodzaju i charakteru słabości. Oto kilka przykładów, jak podatności mogą być wykorzystywane na stronach WordPress:
1. Wstrzykiwanie kodu SQL (SQL Injection)
Podatności SQL Injection pozwalają atakującemu na manipulowanie zapytaniami SQL wysyłanymi do bazy danych strony. Może to prowadzić do nieautoryzowanego dostępu do danych, ich modyfikacji lub usunięcia. Na stronach WordPress, takie podatności często znajdują się we wtyczkach lub motywach, które nie sanitizują (nie oczyszczają z niechcianych znaków) poprawnie danych wejściowych od użytkownika.
2. Cross-Site Scripting (XSS)
Ataki typu Cross-Site Scripting pozwalają atakującemu na wstrzyknięcie złośliwego kodu JavaScript do stron widocznych dla użytkowników. Taki kod może być wykorzystany do kradzieży ciasteczek sesyjnych, fałszowania żądań w imieniu użytkownika czy wyświetlania złośliwej treści. Wtyczki i motywy WordPress są częstymi celami dla tego typu ataków.
3. Przejęcie sesji (Session Hijacking)
Podatności umożliwiające przejęcie sesji mogą pozwolić atakującemu na wykorzystanie ciasteczek sesyjnych do uzyskania nieautoryzowanego dostępu do konta użytkownika WordPress. To może prowadzić do przejęcia konta administratora i pełnej kontroli nad stroną.
Najczęściej jednak spotykane są dwa rodzaje zagrożeń na stronach internetowych:
- Wyświetlanie treści zachęcających do instalacji złośliwych skryptów – użytkownikowi trafiającemu na daną witrynę ukazuje się komunikat zachęcający do dalszej akcji.
Może to być informacja o wygranej w konkursie lub – co jest jeszcze bardziej cwane – ostrzeżenie, że witryna zawiera złośliwe oprogramowanie. Poniżej oczywiście zwykle migocze przycisk, który obiecuje poprawę bezpieczeństwa, np. przez instalację dodatkowego rozszerzenia do przeglądarki.
- Generowanie masowo setek fałszywych podstron, które są natychmiast indeksowane przez wyszukiwarkę Google. Tego typu adresy zawierają najczęściej informacje o produktach z branż uznanych za niebezpieczne.
Trudno je zidentyfikować bez przejrzenia mapy strony XML lub zaindeksowanych podstron w Google, ponieważ nie wyświetlają się one w panelu zarządzania. Oznacza to, że niedoświadczony właściciel może nawet nie wiedzieć, że ktoś wstrzykuje na jego stronie niebezpieczne treści.
Popularne rozwiązania są najbardziej podatne na ataki
Przykładem podatności spowodowanej przez popularne narzędzia może być historia związana z tzw. Adminerem, czyli narzędziem do zarządzania bazą danych bez konieczności logowania przez hosting, czy phpMyAdmin.
Adminer ma postać pliku PHP, który należy umieścić wśród innych skryptów na swoim serwerze. Następnie, po wpisaniu w przeglądarce odpowiedniego adresu przechodzimy do panelu logowania do bazy danych, a jeśli podamy prawidłową nazwę użytkownika i hasło – do panelu zarządzania wszystkimi tabelami.
Plik ze skryptem Adminera miał standardową nazwę typu:
- adminer.php
- adminer-4.3.2.php
- adminer-4.2.5-en.php
Plik po umieszczeniu w katalogu głównym, był publicznie dostępny, a więc wystawiony na wszelkie próby skanowania przez szkodliwe boty internetowe. Dobrą praktyką było umieszczanie go tylko na czas prac w witrynie, lecz później należało taki skrypt oczywiście bezzwłocznie usunąć.
Jak się pewnie domyślacie, wiele osób zwyczajnie zapominało o tym ostatnim, krytycznym dla bezpieczeństwa kroku. Konsekwencją tego niedopatrzenia były masowe przejęcia stron i ataki na serwisy ich klientów.
Masowy skan domen w poszukiwaniu wspomnianych wcześniej plików Adminera oraz luki bezpieczeństwa w samym narzędziu dały osobom trzecim dostęp do setek stron opartych o system WordPress.
Dlaczego wtyczki są podatne na ataki hakerów?
Kilka lat temu popularny plugin do tworzenia sliderów na stronach internetowych stał się tematem numer jeden wśród osób pracujących z WordPress. Wtyczka o nazwie WordPress Slider Revolution Premium została po cichu zhakowana z powodu niezauważonej przez developerów podatności.
3 istotne fakty, które mają znaczenie w tej historii:
- Był to jeden z najpopularniejszych pluginów do tworzenia sliderów z tysiącami pobrań.
- Dołączany był do dziesiątek innych popularnych motywów jako ich integralny element.
- Sam developer postanowił załatwić problem powoli i bez rozgłosu, co oczywiście niezbyt mu się udało.
W wyniku znalezionej luki bezpieczeństwa osoby trzecie mogły za pośrednictwem tej wtyczki pobrać dowolny plik z serwera, na którym była zainstalowana. Celem hakerów stał się oczywiście najbardziej wrażliwy plik, czyli wp-config.php, w którym zapisane są wszystkie dane dostępowe do bazy danych WordPressa.
Dziury zostały załatane, a wkrótce sama wtyczka otrzymała aktualizację bezpieczeństwa. Należy jednak pamiętać, że nie wszystkie WordPressy mają włączone automatyczne aktualizacje wtyczek. Możliwe nawet, że mimo upływu lat, istnieje szereg stron, które nadal mają zainstalowaną podatną na ataki wersję pluginu.
Aktualizacje nie zawsze załatwiają sprawę
Ostatecznie wszystkie tego typu sytuacje kończą się podobnie – developerzy łatają luki bezpieczeństwa, a następnie publikują przeprosiny z zapewnieniem, że sytuacja więcej się nie powtórzy, a nad pluginem czuwają nowi tzw. security experts.
Jednymi z najbardziej podatnych rozwiązań są również wtyczki do formularzy. Swego czasu przyglądałem się, ile podatności miały poszczególne, popularne pluginy. Oto krótkie podsumowanie danych, które zebrałem:
- WPForms – 1 podatność w 2023
- Elementor Forms – 1 podatność w 2023
- Ninja Forms – 6 podatności w 2023
- The Gravity Forms – 1 podatność w 2023
W ich przypadku problem został rozwiązany – programiści naprawili błędy w zabezpieczeniach, a kto pamiętał, ten zaktualizował wtyczki do nowych wersji. Co jeśli jednak developer ma (kolokwialnie mówiąc) w nosie swój kod?
Poniżej inne wtyczki związane z formularzami, w których zidentyfikowano podatności w 2023:
- Contact Form 7 – PayPal & Stripe Add-on
- Contact Form 7 Redirect & Thank You Page
- Themefic Ultimate Addons for Contact Form 7
- Gravity Forms DPS PxPay Plugin
- The Gravity Forms Google Sheet Connector
- WPForms Google Sheet Connector
Jak pewnie zauważyliście, nie są to oficjalne wtyczki, lecz jedynie rozszerzenia funkcjonalności popularnych rozwiązań takich jak Contact Form 7 czy Gravity Forms.
Problem polega na tym, że do tego typu skryptów aktualizacja może nigdy nie nadejść, ponieważ developer może nie rozwijać już danego pluginu lub zwyczajnie nie mieć czasu na łatanie luk bezpieczeństwa.
Nie pomoże więc tutaj uniwersalna rada – aktualizuj regularnie wszystkie wtyczki w swoim WordPressie. To nie wystarczy – należy regularnie sprawdzać, kiedy pojawił się update dla każdego rozszerzenia zainstalowanego w naszym systemie zarządzania treścią.
Autorem wpisu gościnnego jest: Dominik Krawiec
Dominik posiada wieloletnie doświadczenie w optymalizacji stron pod kątem wyszukiwarek (SEO) oraz pasję do pracy z WordPress. Na platformie WooCado.pl zapewnia wszechstronną obsługę stron internetowych dla firm oraz sklepów działających na WooCommerce.
Zostaw e-mail aby otrzymać powiadomienia o nowościach oraz dostęp do wszystkich bonusowych materiałów przygotowanych wyłącznie dla subskrybentów.