XXE ve güvensiz serileştirme: ayrıştırıcıya körü körüne güvenmemek
XML varlıklarının ve nesne serileştirmenin nasıl açığa dönüştüğünü kodda ve trafikte tanır, ayrıştırıcıları dil dil güvenli yapılandırır, güvenli veri biçimlerine geçer ve saldırı izlerini günlükte arayıp bulursun.
Seviye 301 · 17 ders · 15 pratik lab
Dersler
XML ve XXE
- XML varlıkları ve DTD: bir özellik nasıl açığa dönüşür
- XXE’nin saklandığı yerler: SOAP, SVG, Office dosyaları ve SAML
- Kör XXE ve parametre varlıkları
- Milyar kahkaha ve ayrıştırıcıyı tüketen belgeler
- Kısa görev: bir SVG yükleme özelliğindeki XXE’yi kanıtla
XML’i güvenle işlemek
- Dil dil ayrıştırıcı ayarları: Java, .NET, PHP ve Python
- XXE izlerini günlükte ve dışa giden trafikte görmek
- Kısa görev: üç dilde ayrıştırıcıyı güvenli yapılandır ve yeniden test et
Serileştirme
- Serileştirme nedir: nesneden bayta, bayttan nesneye
- Güvensiz serileştirme nasıl olur: güvenilmeyen veriden nesne kurmak
- Araç zinciri kavramı: zararsız sınıfların tehlikeli birleşimi
- Dillere göre riskli biçimler: Java, PHP, Python pickle, .NET ve Node
- Serileştirilmiş veriyi trafikte tanımak
- Kısa görev: bir çerezde taşınan serileştirilmiş nesneyi bul ve riskini açıkla
Düzeltme ve tespit
- Güvenli seçenekler: JSON, şema, imza ve tür izin listesi
- Serileştirme saldırılarını uygulama ve süreç günlüklerinde görmek
- Bitirme görevi: bir belge işleme servisindeki XXE ve serileştirme açıklarını kapat
Pratik lablar
- SVG yüklemesinde XXE: SVG yükleme özelliğinin dış varlıkları çözdüğünü lab'daki zararsız bir dosyayı okutarak kanıtla.
- SOAP uç noktasında XXE: Eski bir SOAP uç noktasının DTD işlediğini kanıtla ve ayrıştırıcı ayarını düzelt.
- Office belgesinin içindeki XML: Belge içe aktarma özelliğinin Office dosyasındaki XML parçalarını güvensiz ayrıştırdığını göster ve ayrıştırıcıyı sertleştir.
- Milyar kahkaha ile tükenen ayrıştırıcı: İç içe varlık genişlemesinin servisi yavaşlattığını lab'da ölç, varlık genişlemesini kapat ve boyut sınırı ekle.
- Python'da güvenli XML ayrıştırma: Python servisindeki güvensiz ayrıştırıcıyı güvenli kütüphaneyle değiştir ve eski açığın kapandığını test et.
- Java'da DocumentBuilderFactory ayarları: Java servisindeki XML fabrikasını güvenli özelliklerle yapılandır ve bir birim testiyle doğrula.
- XXE izi dışa giden trafikte: Ayrıştırıcının dışa yaptığı beklenmeyen istekleri çıkış günlüğünde bul ve tetikleyen yüklemeyi eşleştir.
- Kör XXE: parametre varlıkları: Yanıt döndürmeyen bir XML uç noktasında kör XXE'yi lab istek kaydedicisiyle doğrula ve tüm dillerdeki ayrıştırıcıları gözden geçir.
- Çerezdeki serileştirilmiş nesneyi tanı: Bir oturum çerezinin hangi dilde ve biçimde serileştirildiğini baytlarından tanı ve riskini açıkla.
- PHP unserialize ile değiştirilen nesne: Sepet çerezindeki PHP nesnesinin değiştirilip kabul edildiğini kanıtla ve JSON ile imzaya geçir.
- Java ObjectInputStream ile tür izin listesi: Java servisinde güvenilmeyen veriden nesne kuran noktayı bul ve tür izin listesi süzgeci uygula.
- Python pickle ile iş kuyruğu: İş kuyruğuna dışarıdan pickle verisi girebildiğini zararsız bir kanıtla göster ve kuyruğu imzalı JSON'a taşı.
- Serileştirme saldırısı süreç günlüğünde: Uygulama ve süreç günlüklerinde serileştirme hatası ardından beklenmeyen alt süreç başlatılmasını bul ve zaman çizelgesine dök.
- Belge işleme servisinde iki açık: Kurgusal Brivex Belge servisinde XXE ve güvensiz serileştirmeyi kapat, her biri için tespit kuralı yaz ve yeniden test et.
- Trafikte serileştirilmiş veri avı: Lab trafiğinde Java, .NET ve PHP serileştirme imzası taşıyan parametreleri bulan bir arama yaz ve sonuçları önceliklendir.
Kurs hakkında
XML varlıklarının ve nesne serileştirmenin nasıl açığa dönüştüğünü kodda ve trafikte tanır, ayrıştırıcıları dil dil güvenli yapılandırır, güvenli veri biçimlerine geçer ve saldırı izlerini günlükte arayıp bulursun.
Ne öğreneceksin
- XML ve XXE
- XML’i güvenle işlemek
- Serileştirme
- Düzeltme ve tespit
Ön koşullar
Aynı yolun 101 ve 201 düzeyindeki konularına hâkim olmalısın.
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 301 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.