30 Mayıs 2010 Pazar

13: Session Fixation


  • Oturum bilgisinin saldırgan tarafından kullanıcıya kabul ettirilmesi şeklinde gerçekleşir.
  • Bir araba hırsızlığı şeklinde anlatılabilir:
    • Bir araba satın alınır,
    • Anahtarının kopyası çıkarılır,
    • Araba başkasına satılır,
    • Yeni sahibi yokken kopya anahtar ile araba çalınır.
    • Bu örnekteki anahtar, web uygulamalarındaki cookie’ye denk gelmektedir.
  • İstemci tarafında cookie oluşturmanın birden fazla yolu vardır:
    • Javascript ile,
    • HTML meta elementi ile,
    • URL ile.
      • PHP => https://sunucu/login.php?PHPSESSID=jfsdk78fsdh78sfdha678q
      • JAVA => https://sunucu/login.do;JSESSIONID= jfsdk78fsdh78sfdha678q
  • Session fixation saldırısı şu adımlarla gerçekleştirilir:
    • Saldırgan, hedef uygulamaya kimlik doğrulama yapmadan girerek oturum bilgisini alır
    • Oturum bilgisini kullanıcıya kullandırır / kullanıcının tarayıcısına bu oturum bilgisi tanıtılır (Örneğin kullanıcının cookie’yi içeren linke tıklayarak uygulamaya girmesi sağlanır)
    • Kullanıcı hedef uygulamaya kimlik doğrulama yaparak girmesi beklenir.
    • Bundan sonra saldırganın yapması gereken birkaç şey daha vardır; bunlardan biri de periyodik olarak oturum bilgisini uygulamaya göndererek bilginin geçerliliğini korumaktır.
  • Session Fixation açıklığı olup olmadığının manuel testi şu şekilde yapılır:
    • Hedef sunucuya login olmadan giriş yapılır. Dönen HTTP response'ta Set-Cookie header dönecektir.
    • Cookie alındıktan sonra login olunur / login isteği gönderilir (POST). Dönen HTTP response'ta Set-Cookie header'ı yoksa uygulama ilk verdiği cookie'yi login olduktan sonra da kullanıyor demektir; bu da SESSION FIXATION AÇIĞI VAR demektir.
  • http://shiflett.org/articles/session-fixation

    Hiç yorum yok:

    Yorum Gönder

    Web Uygulama Sızma Testleri İçin Kontrol Listeleri - V

    Checklist for Web App Pentesting - V 6. Veri Denetimi (Data Validation) Testleri 6.1 Girdi Denetimi Bütün girdiler denetlenmelidir....