Sözlük XSS (Cross-Site Scripting)

XSS (Siteler Arası Komut Dosyası Çalıştırma) Nedir?

Siteler Arası Komut Dosyası Çalıştırma veya XSS, saldırganların web sayfalarına zararlı komut dosyaları eklemesine olanak tanıyan bir web sitesi güvenlik açığıdır. Çoğu zaman, bu komut dosyaları JavaScript ile yazılır.

Birisi XSS etkilenmiş bir sayfayı ziyaret ederse, tarayıcıları saldırganın komut dosyasını çalıştırır. Bu, çalınan çerezler, ele geçirilen oturumlar veya kullanıcının izni olmadan yapılan işlemlerle sonuçlanabilir.

XSS, SQL Enjeksiyonu gibi, OWASP İlk 10 listesinde düzenli olarak en yaygın web uygulama güvenlik açıklarından biri olarak yer alır.

plexicus-xss-attack-ilustration

XSS Nasıl Çalışır?

XSS genellikle kullanıcı girişlerini doğru bir şekilde kontrol etmeyen ve temizlemeyen web uygulamalarını hedef alır.

Örneğin, bir yorum kutusu ham HTML veya JavaScript’i herhangi bir filtreleme olmadan kabul ederse, bir saldırgan şu gibi bir kod ekleyebilir:

<script>alert('Hacked!');</script>

Mağdurlar sayfayı görüntülediğinde, kötü niyetli kod tarayıcılarında çalışır.

Siber Güvenlikte XSS Neden Önemlidir

XSS daha büyük bir ihlale yol açabilir:

  • Hesap ele geçirme (kullanıcıları taklit etmek için oturum çerezlerini çalma)
  • Veri hırsızlığı (şifreler veya kredi kartları gibi form girişlerini yakalama)
  • Kimlik avı saldırıları (sahte giriş formları ekleme)
  • Kötü amaçlı yazılım dağıtımı (kullanıcıları kötü niyetli web sitelerine yönlendirme)

XSS Türleri

  1. DOM Tabanlı XSS
  2. Saldırı, Sunucuya dahil olmadan Belge Nesne Modeli’ni (DOM) manipüle ederek tamamen tarayıcıda gerçekleşir.
  3. Depolanmış XSS
  4. Zararlı script, sunucuda kalıcı olarak depolanır, örneğin veritabanı, profil sayfası gibi.
  5. Yansıtılmış XSS
  6. Script, bir web sunucusundan yansıtılır (örneğin, URL veya hata mesajında), kurban saldırganlar tarafından hazırlanmış bağlantıya tıkladığında script çalıştırılır.

XSS Nasıl Önlenir

  • Girdi temizleme ve çıktı kodlama: kullanıcı girdi verilerini işlemden önce her zaman temizleyin, kullanıcı girdisini güvenli bir formata dönüştürün
  • İçerik Güvenlik Politikası (CSP) kullanın: tarayıcıda hangi scriptlerin çalıştırılabileceğini kısıtlar.
  • Eval() ve satır içi JavaScript’ten kaçının: enjeksiyon risklerini azaltmak için.
  • Güvenlik testi (DAST/IAST): güvenlik açıklarını erken tespit etmek için güvenlik testi yapın

Gerçek Dünya Örneği - Samy solucanı (MySpace, 2005)

Ne oldu: Samy Kamkar, bir depolanmış XSS yükü içeren bir MySpace profili yayınladı. Diğer kullanıcılar profili görüntülediğinde, yük tarayıcılarında çalıştı, (a) Samy’yi arkadaş olarak ekledi, (b) profillerine “Samy benim kahramanım” ifadesini ekledi ve (c) kendisini bu kullanıcıların profil sayfalarına çoğalttı.

Etkisi: Solucan, ~1 milyon kullanıcıya yaklaşık 20 saat içinde kendini yaydı ve MySpace’in geçici olarak çevrimdışı olmasına neden oldu.

Neden çalıştı: MySpace, profil alanlarında kaçış yapılmamış HTML/özelliklere izin verdi, bu da ziyaretçilerin tarayıcılarında depolanmış script çalıştırılmasına olanak tanıdı.

Dersler / düzeltme: Doğru çıktı kodlaması, giriş doğrulaması, profil alanlarındaki HTML’in kaldırılması ve hızlı yama. Samy daha sonra yasal sonuçlarla karşılaştı ve MySpace filtreler uyguladı.

İlgili Terimler

Sonraki Adımlar

Uygulamalarınızı güvence altına almaya hazır mısınız? İleriye doğru yolunuzu seçin.

Uygulamalarını Plexicus ile güvence altına alan 500+ şirkete katılın

SOC 2 Compliant
ISO 27001 Certified
Enterprise Ready