Path Traversal Nedir
Dizinler Arasında Gezinerek Gizli Dosyalara Ulaşma Tehlikesi
“Dosya yolu sandığın şey, aslında sisteme çizilmiş bir haritadır.”
— Ersan Karavelioğlu
Path Traversal Nedir
Path Traversal (Directory Traversal), kullanıcı girdisinin yeterince doğrulanmaması nedeniyle
uygulamanın izin verilen dizinlerin dışına çıkarak sistemdeki gizli dosyalara erişilebilmesidir.

Hedef uygulama değil,
dosya sistemidir.

Küçük bir yol, büyük bir sızıntı doğurur.
Neden Bu Kadar Tehlikelidir

Çünkü çoğu zaman
okuma yetkisi yeterlidir.

Konfigürasyonlar, anahtarlar, parolalar açığa çıkar.

Bir dosya, tüm sistemi ele verebilir.
Path Traversal Nasıl Ortaya Çıkar

Uygulama dosya yolu bekler.

Kullanıcı girdisi doğrudan kullanılır.

Yol kontrol edilmezse sınırlar aşılır.
Klasik Bir Örnek

Beklenen: /files/report.pdf

Saldırı: ../../../../etc/passwd

Dizin yukarı çıkılır, sistem dosyası okunur.
“../” Neden Bu Kadar Kritik

../ bir üst dizine çıkar.

Zincirlenerek kök dizine kadar gidilebilir.

Basit ama etkilidir.
Mutlak ve Göreli Yol Farkı

Göreli yol: ../../config.yml

Mutlak yol: /etc/ssh/sshd_config

İkisi de risklidir, kontrol yoksa.
URL Encoding ile Kaçış

%2e%2e%2f gibi kodlamalar

Filtreleri atlatabilir.

“Temizledik” sanılan alanlar delinir.
Double Encoding Nedir

%252e%252e%252f

İlk decode’dan sonra zararlı hâle gelir.

Gözden kaçan klasik kaçış tekniğidir.
Path Traversal ile Neler Okunur

/etc/passwd

.env, config dosyaları

API key’ler, secret’lar

Bilgi sızıntısı zinciri başlar.
Okuma Dışında Yazma da Mümkün mü

Evet, yanlış yapılandırmada.

Dosya overwrite, log poisoning olabilir.

Etki alanı büyür.

Path Traversal ve File Upload İlişkisi

Upload edilen dosya yolu kontrol edilmezse

İstenmeyen dizinlere yazılabilir.

Web shell senaryosu doğar.

API’lerde Path Traversal

/download?file=... gibi endpoint’ler

Yetki ve yol kontrolü yoksa risklidir.

API’ler sessiz hedeftir.

WAF Path Traversal’ı Engeller mi

Bilinen pattern’leri yakalayabilir.

Encoding ve mantıksal kaçışlar geçebilir.

Uygulama içi kontrol şarttır.

Neden Hâlâ Yaygındır

Legacy kodlar

“Sadece dosya okuyor” yanılgısı

Dosya sisteminin gücü hafife alınır.

Güvenli Tasarım Nasıl Olmalı

Allowlist yaklaşımı (izinli dosyalar)

Doğrudan yol yerine
ID → dosya eşlemesi

Yol kullanıcıdan gelmemelidir.

Normalize Etmek Yeterli mi

Hayır.

Normalize + doğrulama birlikte olmalı.

Tek başına çözüm değildir.

Loglama ve Tespit

Ardışık ../ denemeleri

Anormal dosya erişimleri

Görünürlük erken müdahale sağlar.

En Büyük Yanılgı

“Bu dosyalar zaten herkese açık değil.”

Okunabiliyorsa açıktır.

Yetki, varsayım değil kontroldür.

Son Söz
Yol Verilen Dosya, Yol Gösteren Sızıntıdır

Path Traversal,
dizinler arasında yapılan sessiz bir yürüyüştür.

Bir kez yolunu bulan saldırgan, haritayı eline alır.

Güvenli uygulama, kullanıcıya yol sormaz.
“Dosya yolu vermek, sisteme yön tarif etmektir.”
— Ersan Karavelioğlu