Pliki PHP w katalogu uploads
Co to oznacza
Jeśli w katalogu wp-content/uploads/ Twojej strony WordPress znajdują się pliki z rozszerzeniem .php, masz potencjalny problem bezpieczeństwa. Ten katalog jest przeznaczony wyłącznie na media — obrazy, dokumenty PDF, filmy. Pliki PHP nie powinny się tam znajdować w żadnym normalnym scenariuszu. Sprawdź to poleceniem: find wp-content/uploads -name "*.php" -type f.
Obecność plików PHP w uploads to jeden z najczęstszych symptomów przejęcia strony WordPress.
Jakie jest ryzyko
- Backdoor / webshell — to najczęstszy wektor. Atakujący wgrywa plik PHP przez podatną wtyczkę (np. formularz kontaktowy, builder stron, galeria) i uzyskuje zdalny dostęp do serwera. Katalog
uploadsjest wybierany celowo, bo ma uprawnienia do zapisu. - Trwały dostęp — backdoor w
uploadsprzetrwa aktualizację WordPress, zmianę hasła a nawet reinstalację — bouploadsnie jest nadpisywany. - Eskalacja ataku — z poziomu webshella atakujący może: czytać
wp-config.php, modyfikować bazę danych, infekować inne strony na serwerze, wysyłać spam, instalować cryptominery. - Ukrycie — pliki często mają niewinne nazwy (
cache.php,wp-thumb.php,class-upload.php) lub są ukryte w głębokich podkatalogach.
Jak to naprawić
- Zidentyfikuj i usuń pliki — sprawdź każdy plik PHP w
uploads:find wp-content/uploads -name "*.php" -type f - Zablokuj wykonywanie PHP w uploads — nawet jeśli plik zostanie wgrany, serwer nie wykona go:
Nginx:# wp-content/uploads/.htaccess (Apache) <Files "*.php"> Order Deny,Allow Deny from all </Files>location ~* /uploads/.*\.php$ { deny all; return 403; } - Znajdź źródło problemu — jeśli plik PHP pojawił się sam, oznacza to, że strona została skompromitowana. Sprawdź:
- Logi dostępu serwera
- Zainstalowane wtyczki pod kątem znanych podatności
- Konta użytkowników (czy nie dodano nieautoryzowanych)
- Pozostałe katalogi pod kątem dalszych infekcji
- Rozważ pełne skanowanie — jedno znalezione złośliwe oprogramowanie oznacza, że mogą być kolejne.