OAuth Zafiyetleri
Last updated
Was this helpful?
Last updated
Was this helpful?
OAuth, web sitelerinin ve web uygulamalarının bir kullanıcının başka bir uygulamadaki hesabına sınırlı erişim talep etmesini sağlayan yaygın olarak kullanılan bir yetkilendirme çerçevesidir. En önemlisi, OAuth, kullanıcının oturum açma kimlik bilgilerini talep eden uygulamaya göstermeden bu erişimi vermesine olanak tanır. Bu, kullanıcıların hesaplarının tam kontrolünü üçüncü bir tarafa devretmek zorunda kalmak yerine hangi verileri paylaşmak istediklerine ince ayar yapabilecekleri anlamına gelir.
Temel OAuth süreci, bir kullanıcının hesabındaki belirli verilere erişim gerektiren üçüncü taraf işlevselliğini entegre etmek için yaygın olarak kullanılır. Örneğin bir uygulama, bağlantı kurulacak kişileri önerebilmek amacıyla e-posta kişi listenize erişim talep etmek için OAuth'u kullanabilir. Bununla birlikte, aynı mekanizma, kullanıcıların farklı bir web sitesinde sahip oldukları bir hesapla oturum açmalarına olanak tanıyan üçüncü taraf kimlik doğrulama hizmetleri sağlamak için de kullanılır.
OAuth doğrulaması sonrasında yapılan isteklerde manipülasyon yapmayı deneyebiliriz.
Aşağıdaki yollarda Oauth sunucusunun endpoint adreslerini görebilirsiniz.
Eğer oauth sunucusunda ssrf zafiyetini tetikleyecek bir parametre bulabilirseniz OAuth sunucusunun bilgilerini ele geçirebiliriz.
Eğer hesaba oauth ile giriş eklenirken aşağıdakine benzer çekilde csrf token olmadan ekleme yapılıyorsa zafiyet oluşur.
Kurban aşağıdaki linki açtığında bizim oauth hesabımızı kendi hesabına bağlamış olucak ve hesabına kendi oauth bilgilerimiz ile erişebilicez.
OAuth mekanizması çalırken aşağıdaki şekilde oauth servisinin bir parametre ile gönderildiğini düşünün.
Bu durumda kullanıcının yönlendirileceği yeri değiştirerek kodu kendi sunucumuza gönderebiliriz.
Üstteki örneği düşünün fakat bu sefer redirect_uri whitelist ile korunuyor olsun. Eğer uygulamada bir open redirect zafiyeti bulursak bu ikisini zincirleyebiliriz.
Portswigger Academy: https://portswigger.net/web-security/oauth