Otwarty directory listing

Co to jest

Katalog bez index.html lub index.php zamiast 404 lub przekierowania pokaże listę plików — klasyczny „Index of /uploads”. To domyślne zachowanie Apache (moduł autoindex), jeśli go jawnie nie wyłączysz.

Dlaczego to problem

Atakujący na początku rozpoznania szukają właśnie tego. Co mogą znaleźć:

Nawet jeśli w katalogu „nie ma nic wrażliwego”, dajesz atakującemu mapę swojej aplikacji, której inaczej by nie miał. Każda wewnętrzna konwencja nazewnictwa (old_v2/, customer_export/) to podpowiedź.

Jak to naprawić

Apache

W konfiguracji głównej lub .htaccess:

# wyłącz autoindex globalnie
Options -Indexes

Jeśli masz własny VirtualHost:

<Directory /var/www/example.cz>
    Options -Indexes +FollowSymLinks
</Directory>

nginx

nginx ma autoindex domyślnie wyłączony — problem pojawia się, gdy ktoś go jawnie włączył. Szukaj w konfiguracji:

# usuń te wiersze:
autoindex on;

Hosting współdzielony

Utwórz w katalogu pusty index.html:

echo "" > /var/www/example.cz/uploads/index.html

To szybka łatka — lepiej wyłączyć autoindex globalnie.

Weryfikacja

Wypróbuj kilka katalogów: curl -s https://example.cz/uploads/ | head -30. W odpowiedzi nie może być HTML z odnośnikami do plików.

Bonus: posprzątaj kopie zapasowe

Skoro już tam jesteś — przejrzyj wszystkie katalogi i usuń stare kopie zapasowe oraz pliki .bak. Nawet z wyłączonym autoindexem plik db.sql.bak jest dostępny, jeśli atakujący zgadnie nazwę.

Źródła