Siteler arası betik çalıştırma (XSS): yansıyan, saklanan ve DOM
Verinin HTML’e kod olarak karıştığı yerleri kodda bulur, üç XSS türünü lab uygulamasında tanır, bağlama uygun kodlama ve temizleme ile kapatır ve yeniden test edersin.
Seviye 201 · 17 ders · 15 pratik lab
Dersler
XSS nasıl doğar
- Kök neden: veri HTML’e kod olarak karışır
- Etkisi: oturum, işlem ve içerik ele geçirme
- Çıktı bağlamları: HTML gövdesi, öznitelik, JavaScript ve URL
- Kısa görev: lab kodunda kullanıcı girdisinin sayfaya yazıldığı yerleri işaretle
Türleri tanımak
- Yansıyan XSS’i Burp ile tanımak
- Saklanan XSS: yorumdan yönetici paneline
- DOM XSS: kaynaklar ve hedefler (location, innerHTML)
- Tarayıcı araçlarıyla DOM veri akışını izlemek
- Kısa görev: üç XSS türünün her birini lab uygulamasında kanıtla
Düzeltmek
- Bağlama uygun kodlama: doğru kaçış işlevini seçmek
- Şablon motorlarında otomatik kaçış ve onu kapatan tehlikeli yollar
- Zengin metin için temizleme: DOMPurify ve izin listeleri
- Güvenli DOM API’leri: textContent ve innerHTML farkı
- Kısa görev: üç XSS’i kodda kapat
Tespit ve yeniden test
- XSS denemelerini erişim günlüklerinde görmek
- XSS için regresyon testleri yazmak
- Bitirme görevi: bir blog uygulamasındaki XSS’leri bul, kapat ve yeniden test et
Pratik lablar
- Bu formdaki XSS'i bul ve çıktıyı doğru kodla: İletişim formunun teşekkür sayfasında adın kodlanmadan yansıdığını zararsız bir işaretle kanıtla ve HTML kodlamasıyla düzelt.
- Hata mesajında yansıyan parametre: Geçersiz sayfa numarasını hata mesajında aynen gösteren sayfadaki XSS'i kanıtla ve şablonun otomatik kaçışını aç.
- Öznitelik içinde yansıyan arama terimi: Arama teriminin bir input value özniteliğine yazıldığı sayfada XSS'i kanıtla ve öznitelik bağlamına uygun kodlamayı uygula.
- JavaScript dizesi içinde yansıyan değer: Bir betik bloğundaki dizeye yazılan parametredeki XSS'i kanıtla ve değeri JSON olarak veri özniteliğine taşıyarak düzelt.
- Blog yorumunda saklanan XSS: Yorumda saklanan zararsız bir betiğin her ziyaretçide çalıştığını göster ve yorum çıktısını kodla.
- Moderasyon panelinde tetiklenen XSS: Ziyaretçi arayüzünde güvenli görünen ama yönetici moderasyon panelinde çalışan saklanan XSS'i bul ve panel şablonunu düzelt.
- Kullanıcı adında saklanan XSS: Görünen adı birçok sayfada kullanılan bir profilde saklanan XSS'in hangi sayfalarda çalıştığını bul ve hepsini kapat.
- Şablonda kapatılan otomatik kaçış: Şablonda safe filtresiyle kapatılmış otomatik kaçışın yol açtığı saklanan XSS'i bul, filtreyi kaldır ve zengin metni izin listesiyle temizle.
- location.hash'ten innerHTML'e: Sekme seçimini location.hash'ten okuyup innerHTML'e yazan koddaki DOM XSS'i kanıtla ve textContent ile düzelt.
- Tarayıcı araçlarıyla kaynak-hedef izi: Tarayıcı hata ayıklayıcısıyla URL parametresinin hangi işlevlerden geçip DOM'a yazıldığını izle ve güvensiz hedefi düzelt.
- jQuery html() ile DOM XSS: Bildirim kutusunu html() ile dolduran koddaki XSS'i kanıtla ve güvenli DOM API'leriyle yeniden yaz.
- Zengin metin önizlemede DOMPurify ayarı: Zengin metin önizlemesinde yanlış yapılandırılmış temizleyicinin geçirdiği öğeyi bul ve izin listesini daraltıp yeniden test et.
- Erişim günlüğünde XSS denemeleri: Kodlanmış bir erişim günlüğünde XSS denemelerini çözerek bul ve hedeflenen sayfaları listele.
- XSS için regresyon testi: Kapattığın üç XSS için çıktı kodlamasını doğrulayan testler yaz ve şablon değişikliğinin açığı geri getirdiğinde testin kırıldığını göster.
- Blog uygulamasında XSS temizliği: Kurgusal Miraluna Blog'daki tüm XSS'leri bul, kapat, testlerini yaz ve günlükte denemeleri yakalayan bir sorgu ekle.
Kurs hakkında
Verinin HTML’e kod olarak karıştığı yerleri kodda bulur, üç XSS türünü lab uygulamasında tanır, bağlama uygun kodlama ve temizleme ile kapatır ve yeniden test edersin.
Ne öğreneceksin
- XSS nasıl doğar
- Türleri tanımak
- Düzeltmek
- Tespit ve yeniden test
Ö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.