19 Ekim 2010 Salı

HE:WA-C5 Authorization Attack Case Studies-2


Differential Analysis

Kitabın yazarları bir testte kullandıkları yönetmi anlatıyor:

Uygulamayı önce sıradan bir kullanıcıyla login olarak, sonra da admin kullanıcı ile login olarak crawl ediyorlar. Sonuçta sayfa sayısı vs artarken, cookie sayısının aynı olduğunu görüyorlar, buradan oturum/yetki ilişkisinin cookielerde tutulabileceği sonucunu çıkarıyorlar. Sonra admin ve normal kullanıcılar için oluşan cookieleri karşılaştırıyorlar:

Kullanıcı TürüCookie Değeri
Standardjonafid= 833219244.213a72e5767c1c7a6860e199e2f2bfaa.0092.783823921
Adminjonafid= 833208193.dd5d520617fb26aeb18b8570324c0fcc.0092.836100218
Üzerinde birkaç dakika harcayarak şu sonuçları çıkarıyorlar:

  • Cookie değeri segmentlere ayrılmış.
  • İlk, üçüncü ve dördüncü segmentler aynı uzunlukta ve nümerik.
  • İkinci segment MD5 hash olabilir (32 byte uzunlukta, rakam ve f'ye kadar harfler...)
  • Her kullanıcı için her segment aynı uzunlukta.
  • İlk segmentin ilk 3 karakteri her kullanıcı için aynı (833)
Sonra sistematik olarak segmentleri manipüle etmeye başlıyorlar. Son segmentten başlıyorlar ve son segment için şu sonuçlara ulaşıyorlar:

Değiştirilen değerSonuç
1 karakter ekle (9)Uygulama hatası: "Not logged in"
Son karakteri 1'den 9'a değiştirLogin durumunda gözle görülür değişiklik yok
Sondan bir önceki karakteri değiştirÖnceki durumla aynı
Segmentteki 9 katakteri de değiştirÖnceki durumla aynı
Bu sonuçlarla son segmentin yetkilendirme için pek bir anlam ifade etmediğine hükmediyorlar.

Bu şekilde tüm segmentleri manipüle ediyorlar ve görüyorlar ki yetkilendirmede sadece cookiedeki ilk 5 karakter yetkilendirmede söz sahibi. Sonra standart ve admin kullanıcı cookielerini karşılaştırdıkları bir önceki tabloya dönüyorlar, bakıyorlar ki ilk 5 karakterde sadece 5. Karakter farklı! Sonuç: Cookie'nin 5. Karakteri adminler için 0, sıradan kullanıcılar için 1...

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....