avatar
Ece_M
5 puan • 552 soru • 560 cevap
✔️ Cevaplandı • Doğrulandı

XSS Açıklarını Anlamak: Yaygın Türler ve Nasıl Tespit Edilir?

XSS açıkları hakkında bir şeyler duydum ama tam olarak ne olduklarını ve nasıl tespit edildiklerini anlamadım. Bu konuda daha fazla bilgiye ihtiyacım var.
WhatsApp'ta Paylaş
1 CEVAPLARI GÖR
✨ Konuları Gir, Yapay Zeka Saniyeler İçinde Sınavını Üretsin!
✔️ Doğrulandı
0 kişi beğendi.
avatar
simdineolsun
1245 puan • 638 soru • 651 cevap

🛡️ XSS Nedir? (Cross-Site Scripting)

XSS (Cross-Site Scripting), web uygulamalarındaki güvenlik açıklarından biridir. Saldırganların, kötü amaçlı komut dosyalarını (genellikle JavaScript) diğer kullanıcıların tarayıcılarında çalıştırmasına olanak tanır. Bu, çerez çalınmasına, oturum ele geçirilmesine veya kullanıcıların kimlik bilgilerinin ele geçirilmesine yol açabilir.

🗂️ XSS Açıklarının Yaygın Türleri

* Reflected XSS (Yansıtılan XSS):
  • ↩️ Saldırgan, kötü amaçlı bir bağlantı veya form aracılığıyla kurbanı hedefler.
  • 🎣 Kötü amaçlı komut dosyası, sunucu tarafından yanıtın bir parçası olarak yansıtılır ve kurbanın tarayıcısında çalıştırılır.
  • 💥 Bu tür saldırılar genellikle tek seferliktir ve kurbanın bağlantıya tıklaması veya formu göndermesi gerekir.
* Stored XSS (Depolanmış XSS):
  • 💾 Kötü amaçlı komut dosyası, web uygulamasının veritabanında veya başka bir kalıcı depolama alanında saklanır.
  • ✍️ Herhangi bir kullanıcı bu sayfayı ziyaret ettiğinde, kötü amaçlı komut dosyası otomatik olarak çalıştırılır.
  • 💣 Forum gönderileri, yorumlar veya kullanıcı profilleri gibi alanlar bu tür saldırılar için yaygın hedeflerdir.
* DOM-based XSS (DOM Tabanlı XSS):
  • ⚙️ Kötü amaçlı komut dosyası, sunucu tarafında değil, doğrudan kurbanın tarayıcısında çalışır.
  • 🕸️ JavaScript kodu, sayfanın Document Object Model'ini (DOM) manipüle ederek kötü amaçlı komut dosyasını enjekte eder.
  • 🔑 Bu tür saldırılar, istemci tarafı kodun güvenli olmayan bir şekilde işlenmesinden kaynaklanır.

🔍 XSS Açıklarını Nasıl Tespit Edilir?

* Kod İncelemesi:
  • 👁️‍🗨️ Web uygulamasının kaynak kodunu dikkatlice inceleyin.
  • 🔎 Kullanıcı girişlerini işleyen ve çıktı üreten kısımlara odaklanın.
  • 🚨 Güvenli olmayan kodlama uygulamalarını (örneğin, girişleri doğrulamadan veya kodlamadan çıktı üretme) arayın.
* Manuel Test:
  • ⌨️ Web uygulamasının giriş alanlarına (formlar, arama kutuları, URL parametreleri vb.) çeşitli kötü amaçlı komut dosyaları enjekte edin.
  • 🧪 Örneğin: ``
  • ❗ Uygulamanın bu komut dosyalarını nasıl işlediğini gözlemleyin. Eğer komut dosyası çalıştırılırsa, XSS açığı var demektir.
* Otomatik Tarama Araçları:
  • 🤖 OWASP ZAP, Burp Suite gibi otomatik güvenlik tarama araçlarını kullanın.
  • ⚙️ Bu araçlar, web uygulamasında XSS ve diğer güvenlik açıklarını otomatik olarak tespit edebilir.
  • 📈 Ancak, bu araçların sonuçlarını dikkatlice incelemek ve doğrulamak önemlidir.

🛡️ XSS'den Korunma Yöntemleri

* Giriş Doğrulama (Input Validation):
  • ✅ Kullanıcıdan gelen tüm girişleri (form verileri, URL parametreleri, çerezler vb.) doğrulamak ve temizlemek.
  • 🚫 İzin verilmeyen karakterleri veya komut dosyası etiketlerini filtrelemek.
  • 📏 Giriş uzunluğunu sınırlamak ve veri türünü kontrol etmek.
* Çıktı Kodlama (Output Encoding):
  • 🔒 Kullanıcı tarafından sağlanan verileri, güvenli bir şekilde görüntülemek için kodlamak.
  • ➡️ HTML kodlaması (`<`, `>`, `&` gibi karakterleri değiştirme), JavaScript kodlaması ve URL kodlaması gibi farklı kodlama türleri vardır.
  • ⚙️ Hangi kodlama türünün kullanılacağı, verinin nerede görüntüleneceğine bağlıdır.
* Content Security Policy (CSP):
  • 📜 CSP, tarayıcıya hangi kaynaklardan (komut dosyaları, stil sayfaları, resimler vb.) içerik yükleyebileceğini bildiren bir HTTP başlığıdır.
  • 🛡️ CSP, kötü amaçlı komut dosyalarının yüklenmesini engelleyerek XSS saldırılarını azaltır.
  • 🔑 CSP'yi doğru bir şekilde yapılandırmak önemlidir.
* HttpOnly Çerezleri:
  • 🍪 `HttpOnly` özelliği, JavaScript'in çerezlere erişmesini engeller.
  • 🛡️ Bu, XSS saldırıları yoluyla çerezlerin çalınmasını önler.
  • ⚙️ Oturum çerezleri gibi hassas çerezler için `HttpOnly` özelliğini etkinleştirmek önemlidir.

Yorumlar