Dosya yükleme ve yol geçişi açıkları
Kullanıcı girdisinden dosya yolu kuran ve yüklenen dosyaya güvenen kodu bulur, zayıf kontrolleri Burp ile sınar, güvenli depolama ve kanonik yol kontrolüyle kapatırsın.
Seviye 201 · 15 ders · 13 pratik lab
Dersler
Yol geçişi
- Yol geçişi kodda nasıl doğar: kullanıcı girdisinden dosya yolu
- ../ ve kodlanmış biçimlerini Burp ile denemek
- Yerel dosya dahil etme: PHP include ve şablon yolları
- Düzeltme: kanonik yol, izin listesi ve kök klasör kontrolü
- Kısa görev: indirme uç noktasındaki yol geçişini kapat
Dosya yükleme
- Yükleme riskleri: çalıştırılabilir dosya, aşırı boyut ve zararlı içerik
- Zayıf kontroller: uzantı, MIME türü ve sihirli bayt
- Yükleme isteğini Burp’te değiştirerek kontrolleri sınamak
- SVG ve HTML yüklemeleriyle gelen XSS
- Arşiv açarken yol geçişi: zip slip
- Kısa görev: yükleme formunun üç zayıf kontrolünü kanıtla
Güvenli tasarım
- Güvenli depolama: web kökü dışı, rastgele ad, ayrı alan adı
- İçeriği yeniden işlemek: görüntüyü yeniden kodlamak ve üst veriyi silmek
- Yükleme saldırılarını günlükte ve dosya sisteminde görmek
- Bitirme görevi: profil fotoğrafı ve belge yükleme özelliğini güvenli biçimde yeniden kur
Pratik lablar
- İndirme uç noktasında ../: Fatura indirme uç noktasının klasör dışına çıkabildiğini kanıtla ve kanonik yol ile kök klasör kontrolü ekle.
- Tema seçicide yerel dosya dahil etme: Tema adını dosya yoluna ekleyen koddaki yerel dosya dahil etmeyi kanıtla ve tema adını sabit listeye bağla.
- Kodlanmış ../ ile atlanan süzgeç: ../ dizisini silen ama kodlanmış biçimleri kaçıran süzgeci kanıtla ve süzgeci kaldırıp doğru yol doğrulamasını yaz.
- Günlük görüntüleyicide mutlak yol: Göreli yolu engelleyen ama mutlak yolu kabul eden günlük görüntüleyiciyi kanıtla ve dosyaları kimlikle seçilecek şekilde yeniden yaz.
- Zip slip: arşiv içe aktarmada yol geçişi: İçe aktarılan arşivdeki dosya adlarının hedef klasörden çıkabildiğini kanıtla ve her girdiyi açmadan önce doğrulayan kodu yaz.
- Yalnızca MIME türüne bakan yükleme: İstekteki MIME türünü değiştirerek yasak bir dosyanın kabul edildiğini kanıtla ve içerik tabanlı doğrulama ekle.
- Çift uzantı ve büyük harf oyunu: Uzantı kontrolünü çift uzantı ve büyük harfle atlatan dosyayı göster ve izin listesini normalleştirilmiş ada uygula.
- SVG avatar ile saklanan XSS: SVG avatar yüklemesinin profil sayfasında betik çalıştırdığını göster ve SVG'yi reddet ya da rasterleştir.
- Boyut sınırı olmayan belge yükleme: Sınırsız boyut ve sayıda yüklemeye izin veren formu kanıtla, sunucu ve uygulama katmanında sınır koy ve kota aşımını günlüğe yazdır.
- Web kökünde saklanan yüklemeler: Yüklenen dosyaların doğrudan web kökünden sunulduğunu göster ve depolamayı web kökü dışına, rastgele adlarla taşı.
- Fotoğrafta konum üst verisi: Profil fotoğraflarının konum üst verisiyle yayımlandığını kanıtla ve görüntüyü yeniden kodlayıp üst veriyi silen adımı ekle.
- Yükleme saldırısı dosya sisteminde: Yükleme klasöründe ve erişim günlüğünde şüpheli bir dosyanın izini sür ve dosyanın ne zaman, kimden geldiğini raporla.
- Belge yüklemeyi baştan güvenli kur: Kurgusal Tarnova Hukuk portalının belge yükleme özelliğini ayrı alan adı, içerik denetimi ve izlemeyle yeniden kur ve test et.
Kurs hakkında
Kullanıcı girdisinden dosya yolu kuran ve yüklenen dosyaya güvenen kodu bulur, zayıf kontrolleri Burp ile sınar, güvenli depolama ve kanonik yol kontrolüyle kapatırsın.
Ne öğreneceksin
- Yol geçişi
- Dosya yükleme
- Güvenli tasarım
Ön koşullar
Aynı yolun 101 düzeyindeki kurslarını bitirmiş olmak ya da o konuları biliyor olmak yeterlidir.
Lab ortamı
Dersler, tarayıcında açılan sana özel bir Kali Linux masaüstünde geçer; araçlar pencereli arayüzleriyle hazırdır. Kurulum gerekmez, bilgisayar ekranı önerilir.
Sık sorulan sorular
- Bu kurs benim düzeyime uygun mu?
- Kurs 201 düzeyindedir; daha düşük düzeydeki kursların konularını bildiğin varsayılır.
- Kurulum gerekir mi?
- Hayır. Her ders tarayıcında açılan sana özel bir lab ortamında geçer.
- Dersler nasıl işleniyor?
- Her ders 8 ile 10 adımdan ve bir kısa sınavdan oluşur. İlk adımlarda yazman gereken komut gösterilir, sonraki adımlarda yardım azalır; iki denemede takılırsan çözüm açılır.
- Ücretsiz deneyebilir miyim?
- Evet. Her kursun ilk üç dersi ücretsizdir.