mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-29 08:01:00 +00:00
150 lines
8.5 KiB
Markdown
150 lines
8.5 KiB
Markdown
# Account Takeover
|
|
|
|
{% hint style="success" %}
|
|
Impara e pratica AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
|
Impara e pratica GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
|
|
|
<details>
|
|
|
|
<summary>Supporta HackTricks</summary>
|
|
|
|
* Controlla i [**piani di abbonamento**](https://github.com/sponsors/carlospolop)!
|
|
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
|
* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos di github.
|
|
|
|
</details>
|
|
{% endhint %}
|
|
|
|
## **Problema di Autorizzazione**
|
|
|
|
L'email di un account dovrebbe essere tentata per essere cambiata, e il processo di conferma **deve essere esaminato**. Se risulta **debole**, l'email dovrebbe essere cambiata con quella della vittima designata e poi confermata.
|
|
|
|
## **Problema di Normalizzazione Unicode**
|
|
|
|
1. L'account della vittima designata `victim@gmail.com`
|
|
2. Un account dovrebbe essere creato utilizzando Unicode\
|
|
per esempio: `vićtim@gmail.com`
|
|
|
|
Come spiegato in [**questo intervento**](https://www.youtube.com/watch?v=CiIyaZ3x49c), l'attacco precedente potrebbe essere effettuato abusando dei fornitori di identità di terze parti:
|
|
|
|
* Crea un account nel fornitore di identità di terze parti con un'email simile a quella della vittima utilizzando qualche carattere unicode (`vićtim@company.com`).
|
|
* Il fornitore di terze parti non dovrebbe verificare l'email
|
|
* Se il fornitore di identità verifica l'email, forse puoi attaccare la parte di dominio come: `victim@ćompany.com` e registrare quel dominio e sperare che il fornitore di identità generi la versione ascii del dominio mentre la piattaforma della vittima normalizza il nome del dominio.
|
|
* Accedi tramite questo fornitore di identità nella piattaforma della vittima che dovrebbe normalizzare il carattere unicode e permetterti di accedere all'account della vittima.
|
|
|
|
Per ulteriori dettagli, fare riferimento al documento sulla Normalizzazione Unicode:
|
|
|
|
{% content-ref url="unicode-injection/unicode-normalization.md" %}
|
|
[unicode-normalization.md](unicode-injection/unicode-normalization.md)
|
|
{% endcontent-ref %}
|
|
|
|
## **Riutilizzo del Token di Reset**
|
|
|
|
Se il sistema target consente il **riutilizzo del link di reset**, dovrebbero essere fatti sforzi per **trovare più link di reset** utilizzando strumenti come `gau`, `wayback` o `scan.io`.
|
|
|
|
## **Pre Account Takeover**
|
|
|
|
1. L'email della vittima dovrebbe essere utilizzata per registrarsi sulla piattaforma, e dovrebbe essere impostata una password (si dovrebbe tentare di confermarla, anche se la mancanza di accesso alle email della vittima potrebbe rendere questo impossibile).
|
|
2. Si dovrebbe aspettare fino a quando la vittima si registra utilizzando OAuth e conferma l'account.
|
|
3. Si spera che la registrazione regolare venga confermata, consentendo l'accesso all'account della vittima.
|
|
|
|
## **Misconfigurazione CORS per Account Takeover**
|
|
|
|
Se la pagina contiene **misconfigurazioni CORS** potresti essere in grado di **rubare informazioni sensibili** dall'utente per **prendere il controllo del suo account** o fargli cambiare le informazioni di autenticazione per lo stesso scopo:
|
|
|
|
{% content-ref url="cors-bypass.md" %}
|
|
[cors-bypass.md](cors-bypass.md)
|
|
{% endcontent-ref %}
|
|
|
|
## **Csrf per Account Takeover**
|
|
|
|
Se la pagina è vulnerabile a CSRF potresti essere in grado di far **modificare all'utente la sua password**, email o autenticazione in modo da poter accedere:
|
|
|
|
{% content-ref url="csrf-cross-site-request-forgery.md" %}
|
|
[csrf-cross-site-request-forgery.md](csrf-cross-site-request-forgery.md)
|
|
{% endcontent-ref %}
|
|
|
|
## **XSS per Account Takeover**
|
|
|
|
Se trovi un XSS nell'applicazione potresti essere in grado di rubare cookie, storage locale, o informazioni dalla pagina web che potrebbero permetterti di prendere il controllo dell'account:
|
|
|
|
{% content-ref url="xss-cross-site-scripting/" %}
|
|
[xss-cross-site-scripting](xss-cross-site-scripting/)
|
|
{% endcontent-ref %}
|
|
|
|
## **Stessa Origine + Cookie**
|
|
|
|
Se trovi un XSS limitato o un takeover di sottodominio, potresti giocare con i cookie (fissandoli ad esempio) per cercare di compromettere l'account della vittima:
|
|
|
|
{% content-ref url="hacking-with-cookies/" %}
|
|
[hacking-with-cookies](hacking-with-cookies/)
|
|
{% endcontent-ref %}
|
|
|
|
## **Attacco al Meccanismo di Reset della Password**
|
|
|
|
{% content-ref url="reset-password.md" %}
|
|
[reset-password.md](reset-password.md)
|
|
{% endcontent-ref %}
|
|
|
|
## **Manipolazione della Risposta**
|
|
|
|
Se la risposta di autenticazione può essere **ridotta a un semplice booleano prova a cambiare false in true** e vedere se ottieni accesso.
|
|
|
|
## OAuth per Account Takeover
|
|
|
|
{% content-ref url="oauth-to-account-takeover.md" %}
|
|
[oauth-to-account-takeover.md](oauth-to-account-takeover.md)
|
|
{% endcontent-ref %}
|
|
|
|
## Iniezione dell'Intestazione Host
|
|
|
|
1. L'intestazione Host viene modificata dopo l'inizio di una richiesta di reset della password.
|
|
2. L'intestazione proxy `X-Forwarded-For` viene alterata in `attacker.com`.
|
|
3. Le intestazioni Host, Referrer e Origin vengono cambiate simultaneamente in `attacker.com`.
|
|
4. Dopo aver avviato un reset della password e poi optato per rinviare la mail, vengono impiegati tutti e tre i metodi sopra menzionati.
|
|
|
|
## Manipolazione della Risposta
|
|
|
|
1. **Manipolazione del Codice**: Il codice di stato viene alterato in `200 OK`.
|
|
2. **Manipolazione del Codice e del Corpo**:
|
|
* Il codice di stato viene cambiato in `200 OK`.
|
|
* Il corpo della risposta viene modificato in `{"success":true}` o un oggetto vuoto `{}`.
|
|
|
|
Queste tecniche di manipolazione sono efficaci in scenari in cui viene utilizzato JSON per la trasmissione e la ricezione dei dati.
|
|
|
|
## Cambiare l'email della sessione corrente
|
|
|
|
Da [questo rapporto](https://dynnyd20.medium.com/one-click-account-take-over-e500929656ea):
|
|
|
|
* L'attaccante richiede di cambiare la sua email con una nuova
|
|
* L'attaccante riceve un link per confermare il cambio dell'email
|
|
* L'attaccante invia alla vittima il link affinché lo clicchi
|
|
* L'email della vittima viene cambiata in quella indicata dall'attaccante
|
|
* L'attaccante può recuperare la password e prendere il controllo dell'account
|
|
|
|
Questo è accaduto anche in [**questo rapporto**](https://dynnyd20.medium.com/one-click-account-take-over-e500929656ea).
|
|
|
|
### Vecchi Cookie
|
|
|
|
Come spiegato [**in questo post**](https://medium.com/@niraj1mahajan/uncovering-the-hidden-vulnerability-how-i-found-an-authentication-bypass-on-shopifys-exchange-cc2729ea31a9), era possibile accedere a un account, salvare i cookie come utente autenticato, disconnettersi e poi accedere di nuovo.\
|
|
Con il nuovo accesso, anche se potrebbero essere generati cookie diversi, i vecchi hanno ricominciato a funzionare.
|
|
|
|
## Riferimenti
|
|
|
|
* [https://infosecwriteups.com/firing-8-account-takeover-methods-77e892099050](https://infosecwriteups.com/firing-8-account-takeover-methods-77e892099050)
|
|
* [https://dynnyd20.medium.com/one-click-account-take-over-e500929656ea](https://dynnyd20.medium.com/one-click-account-take-over-e500929656ea)
|
|
|
|
{% hint style="success" %}
|
|
Impara e pratica AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
|
Impara e pratica GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
|
|
|
<details>
|
|
|
|
<summary>Supporta HackTricks</summary>
|
|
|
|
* Controlla i [**piani di abbonamento**](https://github.com/sponsors/carlospolop)!
|
|
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
|
* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos di github.
|
|
|
|
</details>
|
|
{% endhint %}
|