Password Reset Poisoning, saldırganın zafiyet bulunan bir web sitesini manipüle ederek, kontrolleri altındaki bir domain'e işaret eden şifre sıfırlama linki oluşturmasına dayanan bir tekniktir. Bu teknik, rastgele kullanıcıların hesaplarını ele geçirmek için kullanılabilir.
Tarihçe: Bu teknik ilk kez 2013 yılında PortSwigger'ın Araştırma Direktörü James Kettle tarafından belgelenmiştir ve o zamandan beri yaygın bir web güvenliği zafiyeti haline gelmiştir.
Normal Şifre Sıfırlama Süreci:
1
Kullanıcı İsteği
Kullanıcı, kullanıcı adı veya e-posta adresini girer ve şifre sıfırlama isteği gönderir.
2
Token Oluşturma
Web sitesi kullanıcının varlığını kontrol eder ve geçici, benzersiz, yüksek entropi'li bir token oluşturarak kullanıcının hesabıyla ilişkilendirir.
3
E-posta Gönderimi
Web sitesi kullanıcıya şifre sıfırlama linki içeren bir e-posta gönderir. Link, benzersiz reset token'ını query parameter olarak içerir.
https://normal-website.com/reset?token=0a1b2c3d4e5f6g7h8i9j
4
Token Doğrulama
Kullanıcı linke tıkladığında, web sitesi token'ın geçerliliğini kontrol eder ve hangi hesabın sıfırlandığını belirler. Her şey uygunsa, kullanıcı yeni şifre girme seçeneği sunulur.
Password Reset Poisoning Saldırısı:
Saldırı Koşulu: Kullanıcıya gönderilen URL'nin Host header gibi kontrol edilebilir girdi temelinde dinamik olarak oluşturulması durumunda password reset poisoning saldırısı mümkün hale gelir.
1
Hedef Belirleme
Saldırgan, kurban kullanıcının e-posta adresini veya kullanıcı adını elde eder ve onun adına şifre sıfırlama isteği gönderir.
2
Host Header Manipülasyonu
İsteği gönderirken, saldırgan HTTP isteğini yakalar ve Host header'ı kendi kontrolündeki domain'e değiştirir.
POST /reset-password HTTP/1.1
evil-attacker.com
application/x-www-form-urlencoded
28
email=victim@example.com
3
Zehirli E-posta
Kurban kullanıcı, web sitesinden gelen gerçek bir şifre sıfırlama e-postası alır. E-posta geçerli token içerir ancak domain saldırganın sunucusuna işaret eder.
https://evil-attacker.com/reset?token=0a1b2c3d4e5f6g7h8i9j
4
Token Çalma
Kurban linke tıkladığında (veya antivirüs yazılımı tarafından tarandığında), şifre sıfırlama token'ı saldırganın sunucusuna iletilir.
5
Hesap Ele Geçirme
Saldırgan artık gerçek web sitesine gidip çaldığı token'ı kullanarak kurbanın şifresini değiştirebilir ve hesabına erişebilir.
Sosyal Mühendislik: Gerçek bir saldırıda, saldırgan kurbanın linke tıklama olasılığını artırmak için önceden sahte güvenlik ihlali bildirimi gibi e-postalar gönderebilir.
Şifre sıfırlama linkini kontrol edemeyenler bile, bazen Host header'ı kullanarak hassas e-postalara HTML inject edebilirler. E-posta istemcileri genellikle JavaScript çalıştırmasa da, dangling markup gibi diğer HTML injection teknikleri hala geçerli olabilir.