hacktricks/pentesting-web/hacking-with-cookies/cookie-tossing.md

91 lines
6.7 KiB
Markdown
Raw Normal View History

2022-04-28 16:01:33 +00:00
<details>
2024-02-10 13:03:23 +00:00
<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:
2022-04-28 16:01:33 +00:00
2024-02-10 13:03:23 +00:00
* Se vuoi vedere la tua **azienda pubblicizzata su HackTricks** o **scaricare HackTricks in PDF** Controlla i [**PACCHETTI 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 di esclusive [**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 repository di** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) su GitHub.
2022-04-28 16:01:33 +00:00
</details>
2024-02-10 13:03:23 +00:00
## Descrizione
2021-10-20 23:25:53 +00:00
2024-02-10 13:03:23 +00:00
Se un attaccante può **controllare un sottodominio o il dominio di un'azienda o trova un XSS in un sottodominio**, sarà in grado di eseguire questo attacco.
2021-10-19 00:01:07 +00:00
2024-02-10 13:03:23 +00:00
Come indicato nella sezione Hacking dei cookie, quando un **cookie viene impostato su un dominio (specificandolo), verrà utilizzato nel dominio e nei sottodomini**.
2021-10-19 00:01:07 +00:00
{% hint style="danger" %}
2024-02-10 13:03:23 +00:00
Pertanto, **un attaccante sarà in grado di impostare su dominio e sottodomini un cookie specifico facendo qualcosa del genere** `document.cookie="session=1234; Path=/app/login; domain=.example.com"`
2021-10-19 00:01:07 +00:00
{% endhint %}
2024-02-10 13:03:23 +00:00
Ciò può essere pericoloso poiché l'attaccante potrebbe essere in grado di:
2021-10-19 00:01:07 +00:00
2024-02-10 13:03:23 +00:00
* **Fissare il cookie della vittima sul proprio account** in modo che, se l'utente non se ne accorge, **eseguirà le azioni nell'account dell'attaccante** e l'attaccante potrebbe ottenere informazioni interessanti (controllare la cronologia delle ricerche dell'utente nella piattaforma, la vittima potrebbe impostare la sua carta di credito nell'account...)
* Se il **cookie non cambia dopo il login**, l'attaccante potrebbe semplicemente **fissare un cookie**, aspettare che la vittima effettui il login e quindi **usare quel cookie per effettuare il login come vittima**.
* Se il **cookie sta impostando un valore iniziale** (come in flask dove il **cookie** può **impostare** il **token CSRF** della sessione e questo valore verrà mantenuto dopo il login della vittima), l'**attaccante può impostare questo valore noto e quindi abusarne** (in questo scenario, l'attaccante può quindi far eseguire all'utente una richiesta CSRF poiché conosce il token CSRF).
2021-10-19 00:01:07 +00:00
2024-02-10 13:03:23 +00:00
## Ordine dei Cookie
2021-10-19 00:01:07 +00:00
2024-02-10 13:03:23 +00:00
Quando un browser riceve due cookie con lo stesso nome **che influiscono parzialmente sullo stesso ambito** (dominio, sottodomini e percorso), il **browser invierà entrambi i valori del cookie** quando entrambi sono validi per la richiesta.
2021-10-19 00:01:07 +00:00
2024-02-10 13:03:23 +00:00
A seconda di chi ha il **percorso più specifico** o quale sia il **più vecchio**, il browser **imposterà prima il valore del cookie** e quindi il valore dell'altro come in: `Cookie: iduser=MoreSpecificAndOldestCookie; iduser=LessSpecific;`
2021-10-19 00:01:07 +00:00
2024-02-10 13:03:23 +00:00
La maggior parte dei **siti web utilizzerà solo il primo valore**. Pertanto, se un attaccante vuole impostare un cookie, è meglio farlo prima che un altro cookie venga impostato o impostarlo con un percorso più specifico.
2021-10-19 00:01:07 +00:00
{% hint style="warning" %}
2024-02-10 13:03:23 +00:00
Inoltre, la capacità di **impostare un cookie in un percorso più specifico** è molto interessante poiché sarai in grado di far **lavorare la vittima con il suo cookie tranne nel percorso specifico in cui il cookie malizioso impostato verrà inviato prima**.
2021-10-19 00:01:07 +00:00
{% endhint %}
2024-02-10 13:03:23 +00:00
## Bypass di Protezione
2021-10-19 00:01:07 +00:00
2024-02-10 13:03:23 +00:00
Una possibile protezione contro questo attacco sarebbe che il **server web non accetterà richieste con due cookie con lo stesso nome ma con valori diversi**.
2021-10-19 00:01:07 +00:00
2024-02-10 13:03:23 +00:00
Per eludere lo scenario in cui l'attaccante sta impostando un cookie dopo che alla vittima è già stato dato il cookie, l'attaccante potrebbe causare un **overflow del cookie** e quindi, una volta **eliminato il cookie legittimo, impostare quello malizioso**.
2021-10-19 00:01:07 +00:00
{% content-ref url="cookie-jar-overflow.md" %}
[cookie-jar-overflow.md](cookie-jar-overflow.md)
{% endcontent-ref %}
2024-02-10 13:03:23 +00:00
Un altro **bypass** utile potrebbe essere **codificare l'URL del nome del cookie** poiché alcune protezioni controllano la presenza di 2 cookie con lo stesso nome in una richiesta e quindi il server decodificherà i nomi dei cookie.
2021-10-19 00:01:07 +00:00
2024-02-10 13:03:23 +00:00
## Bomba di Cookie
2021-10-20 23:25:53 +00:00
2024-02-10 13:03:23 +00:00
Un attacco di Cookie Tossing può anche essere utilizzato per eseguire un attacco di **Bomba di Cookie**:
2021-10-20 23:25:53 +00:00
{% content-ref url="cookie-bomb.md" %}
[cookie-bomb.md](cookie-bomb.md)
{% endcontent-ref %}
2024-02-10 13:03:23 +00:00
## Difese
2021-10-19 00:01:07 +00:00
2024-02-10 13:03:23 +00:00
### **Utilizzare il prefisso `__Host` nel nome del cookie**
2021-10-19 00:01:07 +00:00
2024-02-10 13:03:23 +00:00
* Se un nome di cookie ha questo prefisso, verrà **accettato solo** in una direttiva Set-Cookie se è contrassegnato come Secure, è stato inviato da un'origine sicura, non include un attributo Domain e ha l'attributo Path impostato su /
* **Ciò impedisce ai sottodomini di forzare un cookie sul dominio principale poiché questi cookie possono essere considerati "bloccati dal dominio"**
2021-10-19 00:01:07 +00:00
2024-02-10 13:03:23 +00:00
## Riferimenti
2021-10-19 00:01:07 +00:00
2022-04-05 18:24:52 -04:00
* [**@blueminimal**](https://twitter.com/blueminimal)
* [**https://speakerdeck.com/filedescriptor/the-cookie-monster-in-your-browsers**](https://speakerdeck.com/filedescriptor/the-cookie-monster-in-your-browsers)
* [**https://github.blog/2013-04-09-yummy-cookies-across-domains/**](https://github.blog/2013-04-09-yummy-cookies-across-domains/)
2022-04-28 16:01:33 +00:00
<details>
2024-02-10 13:03:23 +00:00
<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:
2022-04-28 16:01:33 +00:00
2024-02-10 13:03:23 +00:00
* Se vuoi vedere la tua **azienda pubblicizzata su HackTricks** o **scaricare HackTricks in PDF** Controlla i [**PACCHETTI 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 di esclusive [**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 repository di** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) su GitHub.
2022-04-28 16:01:33 +00:00
</details>