FixVibe
Covered by FixVibehigh

Siteler Arası Komut Dosyası Çalıştırma (XSS) Güvenlik Açıklarını Algılama ve Önleme

Siteler Arası Komut Dosyası Çalıştırma (XSS), bir uygulamanın uygun doğrulama veya kodlama olmadan bir web sayfasında güvenilmeyen veriler içermesi durumunda ortaya çıkar. Bu, saldırganların kurbanın tarayıcısında kötü amaçlı komut dosyaları çalıştırmasına olanak tanıyarak oturumun ele geçirilmesine, yetkisiz eylemlere ve hassas verilerin açığa çıkmasına neden olur.

CWE-79

Etki

Siteler Arası Komut Dosyası Çalıştırma (XSS) güvenlik açığından başarıyla yararlanan bir saldırgan, kurban kullanıcı kılığına girebilir, kullanıcının gerçekleştirmeye yetkili olduğu herhangi bir eylemi gerçekleştirebilir ve kullanıcının herhangi bir [S1] verisine erişebilir. Buna, hesapları ele geçirmek için oturum çerezlerinin çalınması, sahte formlar aracılığıyla oturum açma bilgilerinin ele geçirilmesi veya sanal tahrifat [S1][S2] gerçekleştirilmesi dahildir. Mağdurun yönetici ayrıcalıkları varsa, saldırgan uygulama ve [S1] verileri üzerinde tam kontrol sahibi olabilir.

Temel Neden

XSS, bir uygulama kullanıcı tarafından kontrol edilebilen girdi aldığında ve bunu uygun nötrleştirme veya [S2] kodlaması olmadan bir web sayfasına eklediğinde ortaya çıkar. Bu, girişin kurbanın tarayıcısı tarafından aktif içerik (JavaScript) olarak yorumlanmasına olanak tanır ve web sitelerini birbirinden izole etmek için tasarlanan Aynı Kaynak Politikasını atlatır [S1][S2].

Güvenlik Açığı Türleri

  • Yansıyan XSS: Kötü amaçlı komut dosyaları, genellikle [S1] URL parametresi aracılığıyla bir web uygulamasından kurbanın tarayıcısına yansıtılır.
  • Saklanan XSS: Komut dosyası kalıcı olarak sunucuda saklanır (örneğin, bir veritabanında veya yorum bölümünde) ve kullanıcılara daha sonra sunulur [S1][S2].
  • DOM tabanlı XSS: Güvenlik açığı tamamen, innerHTML [S1]'ye yazmak gibi, güvenilmeyen bir kaynaktan gelen verileri güvenli olmayan bir şekilde işleyen istemci tarafı kodunda bulunmaktadır.

Beton Düzeltmeleri

  • Çıktıdaki Verileri Kodlayın: Kullanıcı tarafından kontrol edilebilen verileri, oluşturmadan önce güvenli bir forma dönüştürün. HTML gövdesi için HTML varlık kodlamasını ve bu belirli bağlamlar için uygun JavaScript veya CSS kodlamasını kullanın [S1][S2].
  • Varışta Girişi Filtrele: Beklenen giriş biçimleri için katı izin verilenler listeleri uygulayın ve [S1][S2] ile uyumlu olmayan her şeyi reddedin.
  • Güvenlik Başlıklarını Kullanın: JavaScript [S2] aracılığıyla erişimi engellemek için oturum çerezlerinde HttpOnly bayrağını ayarlayın. Tarayıcıların yanıtları [S1] yürütülebilir kodu olarak yanlış yorumlamamasını sağlamak için Content-Type ve X-Content-Type-Options: nosniff kullanın.
  • İçerik Güvenliği Politikası (CSP): Komut dosyalarının yüklenebileceği ve yürütülebileceği kaynakları kısıtlamak için güçlü bir CSP dağıtın ve derinlemesine bir savunma katmanı [S1][S2] sağlayın.

FixVibe bunu nasıl test ediyor?

FixVibe, yerleşik tarama metodolojileri [S1]'yi temel alan çok katmanlı bir yaklaşım aracılığıyla XSS'yi tespit edebilir:

  • Pasif Taramalar: XSS [S1]'yi azaltmak için tasarlanmış Content-Security-Policy veya X-Content-Type-Options gibi eksik veya zayıf güvenlik başlıklarını belirleme.
  • Etkin Araştırmalar: [S1] kodlaması olmadan yanıt gövdesinde yansıtılıp yansıtılmadıklarını belirlemek için URL parametrelerine ve form alanlarına benzersiz, kötü amaçlı olmayan alfasayısal dizeler ekleme.
  • Repo Taramaları: DOM tabanlı XSS'nin yaygın göstergeleri olan innerHTML, document.write veya setTimeout gibi güvenilmeyen verileri güvenli olmayan bir şekilde işleyen "havuzlar" için istemci tarafı JavaScript'i analiz etme [S1].