XML-RPC jest włączony
Co to oznacza
XML-RPC (xmlrpc.php) to starszy protokół komunikacji z WordPressem, który pozwala zewnętrznym aplikacjom na zdalne publikowanie treści, zarządzanie komentarzami i wywoływanie funkcji WordPress bez dostępu do panelu administracyjnego. Był projektowany w czasach, gdy mobilne aplikacje WordPress potrzebowały sposobu na komunikację z serwerem.
Jeśli endpoint XML-RPC na Twojej stronie jest aktywny i odpowiada na żądania, masz otwarty wektor ataku. Sprawdź to wpisując w przeglądarce twojastrona.pl/xmlrpc.php — jeśli zobaczysz komunikat „XML-RPC server accepts POST requests only", XML-RPC jest włączony. Od czasu wprowadzenia REST API w WordPress 4.7, XML-RPC nie jest potrzebny w większości instalacji.
Jakie jest ryzyko
Aktywny XML-RPC to jeden z najczęściej wykorzystywanych wektorów ataku na WordPress:
- Brute-force logowania — XML-RPC pozwala testować setki kombinacji login/hasło w jednym żądaniu HTTP (metoda
system.multicall). Standardowa ochrona przed brute-force na stronie logowania nie działa na XML-RPC. - DDoS amplification — metoda
pingback.pingmoże być wykorzystana do przekierowania ruchu z Twojego serwera na cel ataku. Twoja strona staje się nieświadomym uczestnikiem ataku DDoS. - Enumeracja użytkowników — atakujący może ustalić prawidłowe loginy za pomocą prób autoryzacji.
- Obciążenie serwera — nawet nieudane próby ataków generują obciążenie procesora i pamięci.
Jak to naprawić
- Zablokuj na poziomie serwera — najskuteczniejsza metoda. W pliku
.htaccess(Apache):
Lub w konfiguracji Nginx:<Files xmlrpc.php> Order Deny,Allow Deny from all </Files>location = /xmlrpc.php { deny all; return 403; } - Wyłącz filtrem WordPress — dodaj do
functions.phplub wtyczki:add_filter('xmlrpc_enabled', '__return_false'); - Użyj wtyczki bezpieczeństwa — większość wtyczek typu Wordfence czy Sucuri oferuje opcję wyłączenia XML-RPC.
- Nie usuwaj pliku — WordPress może go odtworzyć przy aktualizacji. Lepiej zablokować dostęp na poziomie serwera.