CSRF (Siteler Arası İstek Sahteciliği)

CSRF (Siteler Arası İstek Sahteciliği)

CSRF (Siteler Arası İstek Sahteciliği)

CSRF Nedir?

CSRF bir web uygulamalarına yönelik ortaya çıkan bir güvenlik açığıdır. Saldırgan başka bir kullanıcının veya kurbanın kimlik doğrulama bilgilerini kullanarak istemediği eylemleri gerçekleştirebilir.

CSRF Saldırısı Nasıl Çalışır?

  • Kurban ilk etapta web sitesine giriş yapması veya oturum açması gerekir ve kimliğini doğrulatır.
  • Saldırgan zararlı olabilecek bir istek ayarlar örneğin bu istek mail değişikliği yaparak kurbanın web sitesindeki mail adresi ile kendi mail adresini değiştirmesi olabilir.
  • Saldırgan bu zararlı istekleri kendi web sitesini tasarlayarak içine ekleyebilir. Eğer kurban bu zararlı web sitesini ziyaret ederken hedef alınan web sitesinde giriş bilgileri hala geçerliyse saldırgan amacına ulaşarak zararlı bir istek yapabilir hale gelir.

Örnek Bir Saldırı

Web sitesi üzerinde mail değişikliği yapabileceğiniz bir kısım mevcut. Bu mail değişikliği yapmanız için siteye giriş yapmanız yeterli oluyor. Mail değişikliği isteğini Burpsuite aracı üzerinden inceleyelim.

Giden isteğimiz bu şekilde. İsteğe bakacak olursak bize tanımlanan cookie ile birlikte email parametresindeki değere geçerli bir mail adresi yazıp gönderdiğimizde mail adresi başarılı bir şekilde değişiyor.

Bunu göz önüne alırsak herhangi bir kullanıcının kendi tarayıcısı üzerinde kayıtlı cookie değeri varsa ve bu isteği o kullanıcıya yani kurban tarafından sunucuya göndertebilirsek mail adresini başarılı bir şekilde değiştirebiliriz.

Sırada bu isteği bir CSRF PoC’ye dönüştürmek var. Bu işlem için BurpSuite Professional’da doğrudan bir eklenti mevcut, ancak buna sahip değilseniz, internette yapacağınız küçük bir araştırmayla online bir araç bulabilirsiniz.

Tüm isteği kopyalayarak bulduğunuz online dönüştürücüye yapıştırın. Sonuç olarak böyle bir çıktı elde edeceksiniz.

Kodda anlaşılacağı gibi bir Submit butonu konularak bu butona basılması halinde hedef web sitesine POST isteği gitmekte. Bunu daha işlevli hale getirmek için siteye girildiği anda POST isteğini gönderecek bir script ekleyebiliriz.

Eklediğimiz bu kod ile kurbanın hazırladığımız siteye girmesi POST formunu göndermemiz için yeterli olacaktır. Bu sayede kurbanın mail adresini kendi mail adresimiz ile değiştirebiliriz.

CSRF Nasıl Önlenir

CSRF Token Kullanımı: Her form veya istek için benzersiz bir token oluşturularak ve doğrulama yapılması bu tür saldırıları önleyebilir.
Doğrulama ve Onay Mekanizmaları: Önemli işlemler için ek doğrulama ve onay adımları eklemek (örneğin, SMS doğrulaması).
Çerez Ayarları: Çerezlerin güvenli ve HttpOnly olarak ayarlanması, sadece belirli domainler tarafından erişilebilir olmalarını sağlar.
CORS (Cross-Origin Resource Sharing) Politikaları: Farklı kaynaklardan gelen isteklerin sınırlandırılması.