Bu labda, PortSwigger Web Security Academy’nin Authentication kategorisindeki “2FA bypass using a brute-force attack” senaryosunu inceliyoruz. Kullanıcı adı ve parolası bilinen bir hesabın iki faktörlü kimlik doğrulama adımı, doğrulama koduna brute-force uygulanmasına karşı zafiyet içeriyor. Amacımız, Burp makrolarıyla giriş sürecini otomatikleştirerek dört haneli 2FA kodunu brute-force ile bulmak ve carlos kullanıcısının hesap sayfasına erişmek. Lab bağlantısı.
Lab içerisinde carlos:montoya credential’ları bize verilmiş ancak sistemde bir de 2FA olduğunu belirtiyor. 2FA için bize bir kod gelmeyecek ama buranın zafiyetli olduğunu belirtmiş. İlk denemeleri yapalım.

Giriş yaptıktan sonra bu şekilde bir ekran bizi karşılıyor ve oluşan istek bu şekilde. Eğer hatalı girersek sonuç aşağıdaki gibi oluyor.

Birkaç denemeden sonra CSRF hatası almaya başladım. Bundan dolayı, hem ilk başta GET isteği atıp daha sonrasında Set-Cookie ile cookie’yi sonraki POST isteğinde güncelleyip daha sonrasında POST isteğinde atılan CSRF değerini yeni CSRF değeri ile güncelleyeceğim bir şekilde ilerlemem gerekiyordu.

Buradaki 4 digit security code’un her seferinde tekrar üretildiğine dair bir ifade ya da bir işaret yok. Bundan dolayı buradaki sistemi otomatize edip brute-force yapmaya karar verdim.
Bunun için Burp içerisindeki session handling’i kullanacağız.

Önce Proxy > Settings > Session > Session Handling Rules > Add > Scope > Include all URLs yapalım ki rahat olsun. Aynı zamanda burada scope kısmında Extensions’ı da seçiniz çünkü Turbo Intruder kullanacağız.
Arka arkaya atmak istediğimiz istekleri seçiyoruz.

İsterseniz test edebilirsiniz, CSRF ve cookie’yi başarılı bir şekilde handle ettiğini görebilirsiniz.

İlk oluşturduğumuz kurala artık makromuzu aşağıdaki gibi ekleyebilirsiniz.

Repeater’da testlerim esnasında Burp, MFA’yı da değiştirmeye çalışıyordu. Bu yüzden bir ince ayar yapmamız gerekti.

mfa-code parametresini except et dedik.

Tekrar denediğimde her şey yolundaydı… Artık Turbo Intruder’a atabiliriz. Kodum aşağıdaki gibiydi… Burada önemli olan makroların scope’undan yararlanabilmek için engine=Engine.BURP kullanmanızdır.

Şimdi çalıştıralım…

Şimdi bu session ile bu adrese gidelim.

İlk Yorumu Siz Yapın