
🔍 Wykorzystanie WPScan: wyszukiwanie luk w zabezpieczeniach WordPress 2026
Zaktualizowali Państwo wtyczki, skonfigurowali HTTPS i włączyli zaporę sieciową. Strona wygląda na zabezpieczoną. Ale skąd mają Państwo pewność, że w jednej z zainstalowanych wtyczek nie ma podatności, która jest właśnie teraz aktywnie wykorzystywana?
Ręczne sprawdzanie w bazie podatności zajmuje wiele godzin. WPScan robi to w pół minuty: konsolowy skaner bezpieczeństwa WordPress o otwartym kodzie źródłowym, który według danych własnej bazy śledzi ponad 73 000 podatności rdzenia, wtyczek i motywów. W dalszej części: instalacja, token API, skanowanie podstawowe i zaawansowane oraz łamanie haseł.
💡 Szybki przegląd:
Proszę zainstalować WPScan przez Ruby gem, Dockera lub Homebrew i zaktualizować bazę metadanych poleceniem
wpscan --updateProszę zarejestrować bezpłatny token API na wpscan.com: 25 zapytań dziennie, bez tokena skaner nie pokazuje danych o podatnościach
Proszę uruchomić skanowanie podstawowe:
wpscan --url https://ваш-сайт.com --api-token ВАШ_ТОКЕНProszę sprawdzić podatne wtyczki i motywy flagami
-e vporaz-e vt, wyliczyć użytkowników przez-e uDo łamania haseł proszę przygotować plik słownika i przekazać go flagą
--passwords
Czym jest WPScan
WPScan, bezpłatny do użytku niekomercyjnego skaner bezpieczeństwa WordPress, napisany w Ruby. Pierwsze wydanie ukazało się w czerwcu 2011 roku i od tego czasu narzędzie stało się de facto standardem w testach penetracyjnych stron WordPress.
Skaner porównuje zainstalowaną wersję WordPressa, aktywne wtyczki i motywy z WordPress Vulnerability Database na wpscan.com, którą utrzymuje zespół specjalistów ds. bezpieczeństwa. Według danych bazy udokumentowano w niej ponad 73 000 podatności rdzenia, wtyczek i motywów. Każdy wpis jest ręcznie weryfikowany przez dedykowany zespół ekspertów WordPress. Od 2023 roku WPScan pełni rolę CVE Numbering Authority i bezpośrednio nadaje numery CVE podatnościom w ekosystemie WordPress.
Oprócz podatności WPScan potrafi wyliczać loginy użytkowników przez REST API i kanały autorów, łamać hasła słownikowe, znajdować otwarte kopie zapasowe wp-config.php, zrzuty bazy danych i publicznie dostępne logi błędów.
Ważny niuans licencyjny: bezpłatne korzystanie ze skanera CLI jest dozwolone wyłącznie w celach niekomercyjnych. Agencje skanujące strony klientów potrzebują płatnej subskrypcji. Warunki opisano na oficjalnej stronie WPScan.
Instalacja i aktualizacja
WPScan jest dostępny na trzy sposoby. Proszę wybrać ten, który pasuje do Państwa workflow.
Ruby gem, uniwersalna opcja dla Linuxa, macOS i Windows z zainstalowanym Ruby:
1 gem install wpscan
Docker, izolowane środowisko bez zależności:
1 docker pull wpscanteam/wpscan
Przykład uruchomienia przez Dockera:
1 docker run -it --rm wpscanteam/wpscan --url https://example.com -e u
Homebrew, dla macOS:
1 brew install wpscanteam/tap/wpscan
Po instalacji w pierwszej kolejności proszę zaktualizować lokalną bazę metadanych. Zawiera ona informacje o najnowszych wersjach wtyczek i motywów, bez niej skaner nie rozpozna, że zainstalowana wersja jest nieaktualna. Dane o podatnościach są pobierane oddzielnie przez API w czasie rzeczywistym.
1 wpscan --update
Aktualizacja trwa kilka sekund. W wynikach pojawi się wersja WPScan i potwierdzenie aktualności bazy. Proszę powtarzać wpscan --update przed każdym audytem: twórcy publikują aktualizacje metadanych kilka razy w tygodniu.
API-token: klucz do danych o podatnościach
Najczęstszy błąd początkujących: uruchomienie wpscan --url сайт.com bez tokena i zdziwienie, dlaczego skaner milczy na temat podatności. Bez tokena WPScan działa w trybie „tylko metadane". Poinformuje, że wtyczka jest nieaktualna, ale nie powie, jakie CVE są z nią powiązane.
Proszę zarejestrować się na wpscan.com, to bezpłatne i zajmuje minutę. Darmowy plan daje 25 zapytań API dziennie. Jeden skan zużywa 1 zapytanie na wersję WordPressa, 1 zapytanie na każdą zainstalowaną wtyczkę i 1 zapytanie na każdy motyw. Na typowej witrynie WordPress zainstalowanych jest kilkanaście wtyczek, więc bezpłatny limit wystarczy na jedno pełne skanowanie na dobę.
Token przekazuje się flagą --api-token przy każdym uruchomieniu:
1 wpscan --url https://example.com --api-token ВАШ_ТОКЕН
Aby nie wpisywać tokena w każdym poleceniu, proszę zapisać go w pliku konfiguracyjnym ~/.wpscan/scan.yml:
1 api_token: ВАШ_ТОКЕН
Po tym WPScan automatycznie go przechwyci.
Podstawowe skanowanie witryny
Minimalne polecenie do audytu:
1 wpscan --url https://example.com --api-token ВАШ_ТОКЕН
Skaner określi wersję WordPressa, aktywny motyw, wykryje jawne wyświetlanie numerów wersji i sprawdzi podstawowe problemy konfiguracyjne: dostępność wp-cron i readme.html, katalog uploadów, możliwość rejestracji użytkowników.
Wyniki są uporządkowane kolorowymi znacznikami: zielony dla komunikatów informacyjnych, żółty dla ostrzeżeń, czerwony dla znalezionych podatności. Każdej podatności towarzyszy odnośnik do karty w bazie WPScan z opisem wektora ataku, podatnych wersji i zaleceń dotyczących naprawy.
Podstawowe skanowanie trwa zwykle do minuty. Dokładny czas zależy od rozmiaru witryny i szybkości hostingu.
Wyszukiwanie podatnych wtyczek
Wtyczki to główny wektor ataków na WordPressa. Według statystyk WPScan ponad 90% znanych podatności dotyczy właśnie wtyczek. Polecenie do sprawdzenia:
1 wpscan --url https://example.com -e vp --api-token ВАШ_ТОКЕН
Flaga -e vp (enumerate vulnerable plugins) wylicza tylko wtyczki ze znanymi podatnościami. To najszybszy i najbardziej praktyczny tryb: porównuje zainstalowane wtyczki z bazą i raportuje tylko te, dla których istnieją udokumentowane problemy.
Domyślnie WPScan używa pasywnego trybu wykrywania, analizuje kod HTML stron bez zbędnych zapytań. Aby uzyskać maksymalną skuteczność kosztem dodatkowego obciążenia serwera, proszę przełączyć się na tryb mieszany:
1 wpscan --url https://example.com -e vp --plugins-detection mixed --api-token ВАШ_ТОКЕН
Tryb mixed najpierw stosuje analizę pasywną, a następnie agresywnie sprawdza znane ścieżki wtyczek w celu wykrycia ukrytych i nieaktywnych instalacji.
Jeśli skaner znalazł podatną wtyczkę, proszę ją zaktualizować do najnowszej wersji. Deweloper prawie na pewno wydał już łatkę. Jeśli aktualizacji nie ma, a wtyczka jest porzucona, proszę ją usunąć i znaleźć zamiennik. Nie można pozostawiać wtyczki ze znaną podatnością na działającej stronie.
Wyszukiwanie podatnych motywów
Motywy są sprawdzane analogicznie do wtyczek:
1 wpscan --url https://example.com -e vt --api-token ВАШ_ТОКЕН
Flaga -e vt (vulnerable themes) sprawdza aktywny motyw oraz wszystkie zainstalowane motywy pod kątem znanych podatności. Motywy są atakowane rzadziej niż wtyczki, ale podatności w nich się zdarzają, szczególnie w motywach z wbudowanymi kreatorami stron i sliderami.
Domyślny tryb wykrywania motywów jest agresywny, ponieważ analiza pasywna często pomija nieaktywne motywy. Jeśli serwer jest słaby, a obciążenie krytyczne, proszę ograniczyć się do trybu pasywnego:
1 wpscan --url https://example.com -e vt --themes-detection passive --api-token ВАШ_ТОКЕН
Po wykryciu podatnego motywu proszę postępować według tej samej zasady: zaktualizować lub usunąć. Motywy potomne dziedziczą podatności motywów nadrzędnych, proszę sprawdzać oba.
Lista użytkowników
Napastnik, który zna loginy użytkowników WordPressa, musi jedynie odgadnąć hasło. WPScan pokazuje, które loginy są widoczne z zewnątrz:
1 wpscan --url https://example.com -e u
Skaner iteruje po identyfikatorach użytkowników i wydobywa loginy z REST API, kanałów autorów (/author/имя/) oraz innych publicznych punktów dostępu. Wynik wygląda następująco:
1 [i] User(s) Identified: 2 [+] admin 3 [+] editor 4 [+] serg
W idealnej sytuacji nie powinni Państwo widzieć żadnego loginu. Jeśli WPScan znalazł użytkowników, proszę podjąć następujące kroki:
- Proszę ustawić pseudonim wyświetlany, różny od loginu, w ustawieniach profilu.
- Proszę wyłączyć REST API dla nieuwierzytelnionych gości za pomocą wtyczki lub pliku
.htaccess. - Zapora sieciowa na poziomie DNS, na przykład Sucuri lub Cloudflare, zablokuje skaner jeszcze przed dotarciem do serwisu: zobaczą Państwo błąd timeoutu zamiast listy użytkowników.

Aktualne wersje WordPressa ograniczają możliwość uzyskania listy użytkowników przez REST API, ale motywy i wtyczki mogą otwierać drogi obejścia. Poleganie wyłącznie na rdzeniu systemu nie jest wystarczające.
Wyszukiwanie haseł
WPScan obsługuje słownikowe wyszukiwanie haseł. Skaner próbuje zalogować się na każdego znalezionego użytkownika z każdym hasłem z pliku listy. Operacja jest zasobożerna, ale wynik jest tego wart: dowiedzą się Państwo, czy któryś z administratorów nie używa qwerty123.
Proszę przygotować plik tekstowy z hasłami, po jednym w wierszu, i wykonać:
1 wpscan --url https://example.com -e u --passwords /путь/к/passwords.txt
Gotowe słowniki znajdują się w Kali Linux (/usr/share/wordlists/) oraz w otwartych źródłach, takich jak repozytorium SecLists na GitHub. Do podstawowej kontroli wystarczy plik z 500-1000 najpopularniejszych haseł.
Parametr --threads N steruje liczbą jednoczesnych prób. Wartość domyślna to 5. Zwiększenie do 20-30 przyspieszy przeszukiwanie, ale stworzy zauważalne obciążenie serwera i może zadziałać ochrona hostingu.
Przed uruchomieniem brute-force proszę wykonać kopię zapasową strony i uprzedzić dostawcę hostingu: niektórzy blokują IP za liczne nieudane próby logowania.
Dodatkowe możliwości
WPScan potrafi więcej niż podstawowy audyt wtyczek i użytkowników. Oto kilka przydatnych scenariuszy.
Wyszukiwanie wszystkich wtyczek, nie tylko podatnych:
1 wpscan --url https://example.com -e ap --api-token ВАШ_ТОКЕН
Flaga -e ap (all plugins) przeszukuje wszystkie wtyczki z bazy WPScan. Operacja zajmuje zauważalny czas. Proszę używać do pełnego audytu, a nie do regularnych kontroli.
Wykrywanie kopii zapasowych i zrzutów:
1 wpscan --url https://example.com -e cb,dbe
Flagi cb (config backups) i dbe (database exports) szukają publicznie dostępnych kopii zapasowych wp-config.php i zrzutów SQL, przypadkowo pozostawionych przez wtyczki do tworzenia kopii zapasowych. Taki plik w otwartym dostępie jest krytycznie niebezpieczny: atakujący uzyskuje dane uwierzytelniające do bazy danych.
Ciche skanowanie:
1 wpscan --url https://example.com --stealthy --api-token ВАШ_ТОКЕН
Flaga --stealthy dodaje losowe opóźnienia między żądaniami, maskując aktywność skanera jako zachowanie zwykłego odwiedzającego. Przydatne, gdy serwer agresywnie banuje podejrzaną aktywność.
Wyliczanie plików multimedialnych:
1 wpscan --url https://example.com -e m1-100
Sprawdza ID plików multimedialnych w zadanym zakresie. Pomaga wykryć poufne dokumenty dostępne przez bezpośredni link oraz kopie zapasowe przesłane poza bibliotekę mediów.
Pełny samouczek wideo z WPScan, od instalacji do zaawansowanych scenariuszy:
⁉️🤔 Częste pytania
Czy WPScan jest potrzebny, jeśli już jest zainstalowany Jetpack Protect lub Wordfence?
Tak, jest potrzebny. Wtyczki bezpieczeństwa działają od wewnątrz WordPressa i blokują ataki w czasie rzeczywistym. WPScan patrzy na stronę z zewnątrz, tak samo jak atakujący. Znajduje problemy, których wtyczka nie widzi: otwarte kopie zapasowe, wyliczanie użytkowników przez niestandardowe wektory, podatności w nieaktywnych, ale nieusuniętych wtyczkach. Oba podejścia razem dają rzeczywistą obronę w głąb.
Czy WPScan jest bezpieczny dla mojej strony? Czy nie położy serwera?
Skaner wysyła standardowe żądania HTTP, takie same jak zwykły odwiedzający. W trybie pasywnym jedynie analizuje HTML bez dodatkowego obciążenia. Tryb agresywny z pełnym przeszukiwaniem wtyczek (
-e ap) generuje setki żądań i może spowolnić słaby hosting. Do regularnych kontroli proszę używać-e vp,vt,u, to kilkadziesiąt żądań, bezpiecznych dla każdego serwera.
Czy można zautomatyzować skanowanie?
Tak. Dla programistów odpowiednie będzie zadanie cron, które uruchamia kontener Dockera raz w tygodniu i wysyła raport na e-mail. Dla wszystkich pozostałych, serwis WPScan.com automatycznie skanuje stronę zgodnie z harmonogramem i wysyła powiadomienia o nowych podatnościach. Optymalna częstotliwość: pełne skanowanie raz w tygodniu, kontrole komponentów o wysokim priorytecie codziennie. Do ręcznych audytów wystarczy bezpłatny CLI, do stałego monitoringu warto rozważyć zautomatyzowane rozwiązanie.
Co robić, jeśli WPScan znalazł podatność, a aktualizacji nie ma?
Wtyczka jest porzucona przez programistę. Algorytm: (1) proszę sprawdzić, czy podatność jest aktywnie wykorzystywana, karta w bazie WPScan zawiera tę informację; (2) jeśli nie ma ataków i wtyczka jest krytyczna dla biznesu, proszę tymczasowo ograniczyć do niej dostęp przez
.htaccessi zaplanować wymianę; (3) jeśli ataki są odnotowane, proszę natychmiast usunąć wtyczkę. Kompromis między funkcjonalnością a bezpieczeństwem jest tu niemożliwy.
Czym WPScan różni się od innych skanerów WordPressa?
WPScan to jedyny skaner z dedykowaną badawczą bazą podatności, istniejący ponad dziesięć lat. Alternatywy takie jak WPSeku przeszukują wtyczki według statycznej listy bez szczegółowych kart CVE. WPScan jest wspierany przez Automattic poprzez partnerstwo z Jetpack, co gwarantuje długoterminowy rozwój projektu.
Co wybrać: CLI, Docker czy SaaS
Wybór sposobu zależy od Państwa zadań. Szybkie zestawienie:
Wariant | Dla kogo | Częstotliwość | Plus |
|---|---|---|---|
Docker | Jedna strona, audyt jednorazowy | Raz na miesiąc | Brak zależności |
Ruby gem + cron | Kilka stron | Co tydzień | Elastyczne raporty |
WPScan SaaS | Agencja, 10+ stron | Stale | Powiadomienia, dashboard |
- Jeśli mają Państwo jedną stronę i potrzebna jest jednorazowa kontrola, proszę wziąć Dockera: jedno polecenie, zero zależności.
- Jeśli stron jest więcej niż dziesięć i potrzebne są regularne raporty, Ruby gem w zadaniu cron poradzi sobie.
- Jeśli agencja ze setką stron klientów, subskrypcja WPScan SaaS zdejmie ból głowy z monitoringiem.
Proszę nie zapomnieć o tokenie API, bez niego widzą Państwo tylko połowę obrazu. Proszę zacząć od trzech poleceń z bloku „Szybki przegląd" powyżej. Pół minuty i wiedzą Państwo dokładnie, czy strona ma otwarte podatności. A które narzędzie bezpieczeństwa ratowało Państwa w praktyce, proszę napisać w komentarzach.



