← Tüm yazılar

Dizin Listeleme ve Hassas Dosya İfşası: Sunucunuz Neyi Gösteriyor?

14 Eylül 2026

Dizin Listeleme ve Hassas Dosya İfşası: Sunucunuz Neyi Gösteriyor?

Dizin Listeleme (Directory Listing), bir web sunucusunun bir klasörde varsayılan dosya (ör. index.html) bulamadığında, o klasördeki tüm dosyaları bir liste olarak göstermesidir. Amaçlanmadığında bu, saldırgana sitenizin dosya yapısını, yedekleri ve bazen doğrudan hassas içeriği açık eder. Yanına bir de yanlışlıkla erişilebilir kalan yapılandırma/yedek dosyaları eklendiğinde, ciddi bir sızıntı kaynağı ortaya çıkar.

Nasıl oluşur?

  • Otomatik dizin listeleme açık: Sunucu, indeks dosyası olmayan klasörlerde içerik listesi üretir. https://siteniz.com/uploads/ adresine gidildiğinde tüm yüklenen dosyalar görünür.
  • Yedek ve geçici dosyalar: config.php.bak, database.sql, .env, index.php~ gibi dosyalar dağıtım sırasında yanlışlıkla erişilebilir kalır.
  • Sürüm kontrol dizinleri: Web köküne kopyalanmış bir .git/ klasörü, saldırganın tüm kaynak kodu ve geçmişi indirmesine olanak tanıyabilir.

Neden tehlikeli?

Bu dosyalar sıklıkla sır içerir: veritabanı parolaları, API anahtarları, iç yapılandırma. .env veya config sızıntısı, doğrudan bir hesap/altyapı ele geçirmeye dönüşebilir. Kaynak kod ifşası ise saldırgana uygulamanın iç mantığını ve başka zafiyetleri bulma imkânı verir.

Nasıl kapatılır?

  1. Dizin listelemeyi kapatın. Nginx’te autoindex off; (varsayılan kapalıdır), Apache’de Options -Indexes.
  2. Hassas dosyaları web kökünün dışına taşıyın. Yapılandırma, sır ve yedekler public dizinde bulunmamalı.
  3. Yedek/geçici dosya bırakmayın. Dağıtım sürecini, .bak/~/.old dosyalarını üretime taşımayacak biçimde düzenleyin.
  4. Sürüm kontrol dizinlerini engelleyin. .git, .svn gibi klasörlere erişimi sunucu düzeyinde reddedin.
  5. .env ve benzeri dosyalara erişimi açıkça reddedin (sunucu kuralıyla).

Nasıl test edilir?

Yaygın hassas yolları elle deneyin:

for p in .git/HEAD .env config.php.bak backup.sql uploads/ ; do
  echo -n "$p -> "; curl -s -o /dev/null -w "%{http_code}\n" "https://siteniz.com/$p"
done

200 dönen ve içerik gösteren yollar risklidir; .git/HEAD için 200 özellikle tehlikelidir (tüm depo indirilebilir olabilir). Ayrıca bir klasöre indeks dosyası olmadan gidip liste çıkıp çıkmadığını kontrol edin.

Özet

Dizin listeleme ve erişilebilir yedek/yapılandırma dosyaları, sunucunuzu istemeden bir “dosya tarayıcısına” çevirir ve sır sızdırabilir. Çözüm: dizin listelemeyi kapatın, hassas dosyaları web kökünün dışına alın, yedek/sürüm-kontrol dosyalarını üretimden uzak tutun ve yaygın yolları düzenli test edin.

Kaynaklar: OWASP: Directory Listing / Misconfiguration (A05:2021), CWE-548.

Sunucunuzda açık dizin listeleme veya erişilebilir hassas dosya var mı? CyberTestify’ın dış yüzey taraması bu yaygın yanlış yapılandırmaları kontrol eder.