Otvorený directory listing

Čo to je

Adresár bez index.html alebo index.php vám web namiesto 404 alebo presmerovania zobrazí zoznam súborov — klasický „Index of /uploads“ výpis. Toto je predvolené správanie Apache (modul autoindex), pokiaľ ho explicitne nevypnete.

Prečo je to problém

Útočníci na začiatku prieskumu hľadajú práve toto. Čo môžu nájsť:

Aj keď v adresári „nič citlivé nie je“, dávate útočníkovi mapu vašej aplikácie, ktorú inak nemá. Každá interná pomenovacia konvencia (old_v2/, customer_export/) je nápoveda.

Ako to opraviť

Apache

V hlavnej konfigurácii alebo .htaccess:

# vypnúť autoindex globálne
Options -Indexes

Pokiaľ máte vlastný VirtualHost:

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

nginx

nginx má autoindex predvolene vypnutý — problém vzniká, keď ho niekto explicitne zapol. Hľadajte v configu:

# odstráňte tieto riadky:
autoindex on;

Zdieľaný hosting

Vytvorte v adresári prázdny index.html:

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

Toto je quick fix — lepšie je vypnúť autoindex globálne.

Overenie

Vyskúšajte niekoľko adresárov: curl -s https://example.cz/uploads/ | head -30. V odpovedi nesmie byť HTML s odkazmi na súbory.

Bonus: vyčistiť zálohy

Keď už tam ste — prejdite si všetky adresáre a zmažte staré zálohy a .bak súbory. Aj s vypnutým autoindexom je db.sql.bak dostupný, ak útočník uhádne názov.

Referencie