Bu yazımızda iki aşamalı doğrulama nasıl atlatılır konusu üzerinde duracağız. Bir web uygulamasına sızma testi gerçekleştitiken herhangi bir kullanıcının hesabını ele geçirdiğinizi ancak kullanıcının iki aşamalı doğrulama (OTP) kullandığını varsayalım. Bu durumda OTP bypass gerçekleştiremediğiniz durumda kullanıcı hesap bilgileri neredeyse hiçbir işinize yaramayacaktır. Neyse ki 2FA kusursuz bir sistem değil.
İçindekiler Tablosu
Doğrudan Erişim
En basit yöntemle başlamak istedim. Bu yöntemi kullanmak çölde vaha bulmakla oldukça benzer olsa da el alışkanlığı olarak mutlaka denenmesi gereken bir yöntem.
Bu yöntemi uygulayabilmek için 2FA doğrulamasını başarıyla geçen kullanıcıların hangi URL’e yönlendirildiklerini yani uygulamanın hangi URL’de çalıştığını biliyor olmanız gerekir. Bunun en basit yolu ise mümkünse uygulamaya kayıt olup kendi OTP kodunu başarıyla girdikten sonra URL kısmını kontrol etmektir. Örneğin uygulama /dashboard adresinde çalışıyor olsun. Belki de OTP yapılmasa da o URL’e doğrudan erişiminiz vardır?
Başka Bir Geçerli Token Girmek
Bir önceki adımda uygulamamıza kayıt olmuştuk. O hesabın çok işe yarayacağını söylemiş miydim 🙂 Şimdi denememiz gereken şey kendi OTP kodumuzun hesap bilgilerine sahip olduğumuz kullanıcıya yazarak denemek. Eğer OTP kodları validate edilirken sadece kullanılıp kullanılmadığına bakılıyorsa, hangi kullanıcıya ait olduğu önemli değilse doğrulamayı atlatmanız işten bile değil.
Ayrıca OTP kodu gönderme isteği eğer bir API ile frontend tarafında sağlanıyorsa ve giden POST isteğinin içerisinde secret key varsa aynı secret keyi kendi hesabınızdan göndermeyi deneyin belki de başkasının secreti sizin hesabınızda işe yarıyordur.
Bu başlık altında bahsedeceğim bir diğer yöntem ise bir üst paragraftaki gibi bir senaryoda POST isteği içinde telefon numarası gibi bir data varsa onu kendi telefon numaranızla değiştirerek aynı senaryoyu farklı bir bakış açısı ile tekrarlayabileceğinizdir.
Kullanıcı Çerezlerini Ele Geçirmek
Çerezler internet sitelerinin bizi kimlik doğrulama işlemine tabi tuttuktan sonra her seferinde tekrar şifre sormamak için kullandıkları kullanışlı bir teknoloji. Temel mantık olarak kullanıcı giriş yapar ve her şey doğru ise kendisine anlamlı veya anlamsız bir çerez değeri gönderilir. Tarayıcı ise siteye her istek yaptığında bu çerez bilgisini de isteğe ekleyerek isteği gönderenin daha önce giriş yapmış yetkili bir kullanıcı olduğunu doğrular.
Eğer çerez IP adresi, http agent bilgisi gibi o kullanıcıyı özgün verilerle doğrulanmadan kullanılıyorsa çerezi ele geçirmek demek oturumu ele geçirmek anlamına gelir. Çerezi kullanıcı bilgisayarına RAT atarak veya Stored XSS gibi yöntemlerle ele geçirebilirsiniz. Kullanıcı oturum açmış ve 2FA doğrulaması yapmış olacağından hiçbir kimlik denetimine tabi olmadan oturum açabilirsiniz. Ayrıca belirtmek isterim ki bu yöntem sadece 2FA değil, kullanıcı adı ve parola kısımlarını da atlatıyor.
Parola Sıfırlamayı Denemek
Eğer sitenin parola sıfırlama kısmında hali hazırda bir güvenlik açığı bulduysanız veya kullanıcının mail adresine sahipseniz (aynı parolayı girmeyi deneyebilirsiniz) bir parola sıfırlama bağlantısı gönderebilirsiniz. Bazı web uygulamalarında parola sıfırlama yapıldığında OTP bypass durumu söz konusu olabilmektedir.
Kaba Kuvvet Saldırısı
OTP kodları genelde 4-6 haneli sayılardan oluşan, tüm ihtimallerin denenmesi çokta zor olmayan kodlardır. Belirli bir giriş denemesinden sonra hala OTP denemenize izin veriliyorsa tüm ihtimalleri bilgisayara denetin.
Eğer deneyebileceğiniz maximum limit varsa bu sefer üretilen OTP kodunu limitsiz bir şekilde ürettirip ürettiremediğinize bakın. Eğer sürekli OTP kodu değişiyorsa ve ben sürekli aynı 3 tahminde bulunuyorsam yine bir brutbforce saldırısı gerçekleşecektir.
Beni Hatırla İşlevi
Eğer site OTP için cihazı hatırla seçeneği sunuyorsa ve bu konudaki doğrulamasını kullanıcı ip adresine göre yapıyorsa kullanıcının ip adresini öğrenin ve X-Fowarded-For olarak gönderin.
Bu işe yaramazsa kullanıcının ip adresinden saldırıyı gerçekleştirmeyi deneyebilirsiniz (aynı ağda hatta aynı cgnatta olmanız yeterli)
Yedek Kodlar
OTP oluşturulurken yedek kodlar da oluşturulur. Bu yedek kodlar ilerde cihazın başına bir şey gelirse oturumu açabilmeyi sağlar. Eğer bu yedek kodlara erişim elde ederseniz OTP’yi atlatmış olursunuz.
Kısıtlı Cihaz Erişimi
Eğer OTP sms olarak gönderiliyorsa ve kurbanımızın telefonu kilit ekranında bildirim içeriğinin bir kısmını veya tamamını okumamıza izin veriyorsa boş anını kollayın ve doğru kodu girin.
Böylece iki aşamalı doğrulama atlatma işlemindeki temel yöntemlere değinmiş olduk. örnekler bu şekilde uygulamanın özelliklerine göre çeşitlendirilebilir. Umarım yararlı olur.
Diğer Siber Güvenlik Yazıları İçin Tıklayın
Deniz Bektaş
HacktorX YazarıYaklaşık 10 yıldır programlama ve siber güvenlik ile ilgilenmekteyim. Kendimi Web Application Pentesting, DevOps ve Backend Development alanlarında geliştirmekteyim.