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’den etkilenen bir sayfayı ziyaret ederse, tarayıcıları saldırganın komut dosyasını çalıştırır. Bu, çerezlerin çalınması, oturumların ele geçirilmesi veya kullanıcının izni olmadan gerçekleştirilen eylemlerle sonuçlanabilir.

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

plexicus-xss-attack-ilustration

XSS Nasıl Çalışır?

XSS genellikle kullanıcı girdilerini 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 girdilerini yakalama)
  • Kimlik avı saldırıları (sahte giriş formları enjekte etme)
  • 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ı tamamen tarayıcıda, Sunucuya dahil olmadan Belge Nesne Modeli’ni (DOM) manipüle ederek 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: her zaman kullanıcı girdi verilerini işlemden önce temizlemek, kullanıcı girdisini güvenli bir formata dönüştürmek
  • İçerik Güvenlik Politikası (CSP) kullanın: tarayıcıda hangi scriptin ç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 MySpace profili yayınladı ve bu profil depolanmış XSS yükü içeriyordu. 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) kendini bu kullanıcıların profil sayfalarına çoğalttı.

Etkisi: Solucan, ~1 milyon kullanıcıya ~20 saat içinde kendi kendine yayıldı ve MySpace’in geçici olarak çevrimdışı kalmasına neden oldu.

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

Dersler / düzeltme: Doğru çıktı kodlaması, giriş doğrulaması, profil alanlarındaki HTML’nin 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.

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

SOC 2 Compliant
ISO 27001 Certified
Enterprise Ready