FixVibe
Covered by FixVibehigh

CORS Yanlış Yapılandırma: Aşırı Müsamahakar Politikaların Riskleri

Çapraz Kaynaklı Kaynak Paylaşımı (CORS), Aynı Kaynak Politikasını (SOP) gevşetmek için tasarlanmış bir tarayıcı mekanizmasıdır. Modern web uygulamaları için gerekli olsa da, istek sahibinin Origin başlığının tekrarlanması veya "boş" kaynağın beyaz listeye alınması gibi uygunsuz uygulamalar, kötü amaçlı sitelerin özel kullanıcı verilerini sızdırmasına izin verebilir.

CWE-942

Etki

Bir saldırgan, güvenlik açığı bulunan [S2] uygulamasının kullanıcılarından hassas, kimliği doğrulanmış verileri çalabilir. Bir kullanıcı, güvenlik açığı bulunan uygulamada oturum açmışken kötü amaçlı bir web sitesini ziyaret ederse, kötü amaçlı site, uygulamanın API'sine çapraz kaynak isteklerinde bulunabilir ve [S1][S2] yanıtlarını okuyabilir. Bu, kullanıcı profilleri, CSRF belirteçleri veya [S2] özel mesajları dahil olmak üzere özel bilgilerin çalınmasına yol açabilir.

Temel Neden

CORS, sunucuların hangi kaynakların (etki alanı, şema veya bağlantı noktası) [S1] kaynaklarını yüklemesine izin verildiğini belirtmesine olanak tanıyan HTTP üstbilgisi tabanlı bir mekanizmadır. Güvenlik açıkları genellikle bir sunucunun CORS politikası çok esnek olduğunda veya [S2] kötü uygulandığında ortaya çıkar:

  • Yansıyan Kaynak Başlığı: Bazı sunucular, bir istemci isteğinden Origin başlığını okur ve bunu Access-Control-Allow-Origin (ACAO) yanıt başlığı [S2]'ye geri yansıtır. Bu, herhangi bir web sitesinin [S2] kaynağına etkili bir şekilde erişmesine olanak tanır.
  • Yanlış Yapılandırılmış Joker Karakterler: * joker karakteri herhangi bir kaynağın bir kaynağa erişmesine izin verse de, kimlik bilgisi gerektiren istekler (çerezler veya Yetkilendirme başlıkları gibi) [S3] için kullanılamaz. Geliştiriciler genellikle [S2] isteğine dayalı olarak ACAO başlığını dinamik olarak oluşturarak bunu atlamaya çalışırlar.
  • 'Boş' olarak beyaz listeye alma: Bazı uygulamalar, yeniden yönlendirilen istekler veya yerel dosyalar tarafından tetiklenebilen null kaynağını beyaz listeye alarak, kötü amaçlı sitelerin null kaynağı gibi görünerek [S2][S3]'ye erişmesine olanak sağlar.
  • Ayrıştırma Hataları: Origin başlığı doğrulanırken normal ifade veya dize eşleştirmede yapılan hatalar, saldırganların trusted-domain.com.attacker.com [S2] gibi alanları kullanmasına izin verebilir.

CORS'nin Siteler Arası İstek Sahteciliğine (CSRF) [S2]'ye karşı bir koruma olmadığını unutmamak önemlidir.

Beton Düzeltmeleri

  • Statik Beyaz Liste kullanın: Access-Control-Allow-Origin üstbilgisini, isteğin Origin üstbilgisi [S2]'den dinamik olarak oluşturmaktan kaçının. Bunun yerine, isteğin kaynağını [S3] güvenilir etki alanlarının sabit kodlanmış listesiyle karşılaştırın.
  • 'Boş' Kaynaktan kaçının: İzin verilen kaynaklar [S2] beyaz listenize asla null'yi eklemeyin.
  • Kimlik Bilgilerini Kısıtla: Access-Control-Allow-Credentials: true'yi yalnızca belirli çapraz kaynak etkileşimi [S3] için kesinlikle gerekliyse ayarlayın.
  • Doğru Doğrulamayı Kullanın: Birden fazla kaynağı desteklemeniz gerekiyorsa, Origin başlığına yönelik doğrulama mantığının sağlam olduğundan ve alt alan adları veya benzer görünümlü [S2] alan adları tarafından atlanamayacağından emin olun.

FixVibe bunu nasıl test ediyor?

FixVibe artık bunu geçitli bir aktif kontrol olarak içeriyor. Etki alanı doğrulamasının ardından active.cors, sentetik saldırgan kaynağıyla aynı kökenli API isteklerini gönderir ve CORS yanıt başlıklarını inceler. Kamuya açık varlık gürültüsünü önlerken, halka açık olmayan API uç noktaları üzerinde keyfi kökenleri, joker karakterli CORS'yi ve tamamen açık CORS'yi yansıtır.