Username Enumeration
Username Enumeration Zafiyeti
Username Enumeration zafiyeti, uygulamanın kullanıcı adı doğrulama işlemi sırasında, var olan ve olmayan kullanıcı adlarına farklı tepkiler vererek saldırganlara kullanıcı adlarını tahmin etme imkânı tanıdığı bir güvenlik açığıdır.
Eğer rate-limit yoksa zafiyet daha etkili olur.
E-posta veya username için zafiyet denenebilir.
Olabileceği Alanlar
Login isteği
Register isteği
Parola sıfırlama isteği
API'ler
Email onaylama
Username Enumeration via Length
Eğer doğru ve yanlış kullanıcı adı girişlerinde farklı yanıtlar dönüyorsa kullanıcı adları listelenebilir. Bu bir zafiyettir.
POST /login HTTP/2
username=john&password=pass123 -> Invalid username or password
POST /login HTTP/2
username=randomusername123123&password=pass123 -> Invalid username
Username Enumeration via Delay
Parolaya çok uzun bir değer girerek kullanıcı adlarını listelemeyi deneyebiliriz. Eğer bir yanıt diğerlerinden daha geç geliyorsa o kullanıcı adı var olabilir.
POST /login HTTP/2
username=john&password=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-> 2000ms gecikme
POST /login HTTP/2
username=randomusername&password=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-> 20ms gecikme
Username Enumeration via Lock
Eğer başarısız girişler sonucunda hesap kilitlendi yanıtı alıyorsak fakat var olmayan hesaplarda bu yanıtı almıyorsak bu yöntemle kullanıcıları listeleyebiliriz.
LOGIN 1 john -> Invalid username or password
LOGIN 2 john -> Invalid username or password
LOGIN 3 john -> Invalid username or password
LOGIN 4 john -> Account is locked
LOGIN 1 randomuser -> Invalid username or password
LOGIN 2 randomuser -> Invalid username or password
LOGIN 3 randomuser -> Invalid username or password
LOGIN 4 randomuser -> Invalid username or password
Kaynaklar
Last updated