hacktricks/pentesting-web/xss-cross-site-scripting/chrome-cache-to-xss.md

51 lines
4.9 KiB
Markdown
Raw Normal View History

2023-01-12 13:44:25 +00:00
# Chrome Cache to XSS
<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>
2023-01-12 13:44:25 +00:00
2024-02-10 13:03:23 +00:00
* Lavori in una **azienda di sicurezza informatica**? Vuoi vedere la tua **azienda pubblicizzata su HackTricks**? o vuoi avere accesso all'**ultima versione di PEASS o scaricare HackTricks in PDF**? Controlla i [**PACCHETTI DI ABBONAMENTO**](https://github.com/sponsors/carlospolop)!
* Scopri [**The PEASS Family**](https://opensea.io/collection/the-peass-family), la nostra collezione di [**NFT esclusivi**](https://opensea.io/collection/the-peass-family)
* Ottieni il [**merchandising ufficiale di PEASS & HackTricks**](https://peass.creator-spring.com)
* **Unisciti al** [**💬**](https://emojipedia.org/speech-balloon/) [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo Telegram**](https://t.me/peass) o **seguimi** su **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Condividi i tuoi trucchi di hacking inviando PR al** [**repo hacktricks**](https://github.com/carlospolop/hacktricks) **e al** [**repo hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
2023-01-12 13:44:25 +00:00
</details>
2024-02-10 13:03:23 +00:00
Ulteriori dettagli approfonditi [**in questo articolo**](https://blog.arkark.dev/2022/11/18/seccon-en/#web-spanote).
2023-01-12 13:44:25 +00:00
2024-02-10 13:03:23 +00:00
La tecnica discussa qui riguarda la comprensione del comportamento e dell'interazione di due tipi di cache principali: la **cache di avanzamento/indietro (bfcache)** e la **cache su disco**. La bfcache, che memorizza uno snapshot completo di una pagina, compreso l'heap JavaScript, ha la precedenza sulla cache su disco per le navigazioni di avanzamento/indietro grazie alla sua capacità di memorizzare uno snapshot più completo. La cache su disco, al contrario, memorizza le risorse scaricate dal web senza includere l'heap JavaScript ed è utilizzata per le navigazioni di avanzamento/indietro per ridurre i costi di comunicazione. Un aspetto interessante della cache su disco è l'inclusione delle risorse scaricate utilizzando `fetch`, il che significa che le risorse URL accessate verranno renderizzate dal browser dalla cache.
2023-01-12 13:44:25 +00:00
2024-02-10 13:03:23 +00:00
### Punti chiave:
2023-01-12 13:44:25 +00:00
2024-02-10 13:03:23 +00:00
- La **bfcache** ha la precedenza sulla cache su disco nelle navigazioni di avanzamento/indietro.
- Per utilizzare una pagina memorizzata nella cache su disco invece della bfcache, quest'ultima deve essere disabilitata.
2023-01-12 13:44:25 +00:00
2024-02-10 13:03:23 +00:00
Disabilitazione della bfcache:
2023-01-12 13:44:25 +00:00
2024-02-10 13:03:23 +00:00
Di default, Puppeteer disabilita la bfcache, in linea con le condizioni elencate nella documentazione di Chromium. Un metodo efficace per disabilitare la bfcache è l'utilizzo di `RelatedActiveContentsExist`, ottenuto aprendo una pagina con `window.open()` che mantiene un riferimento a `window.opener`.
2023-01-12 13:44:25 +00:00
2024-02-10 13:03:23 +00:00
Riproduzione del comportamento:
2023-01-12 13:44:25 +00:00
2024-02-10 13:03:23 +00:00
1. Visita una pagina web, ad esempio `https://example.com`.
2. Esegui `open("http://spanote.seccon.games:3000/api/token")`, che restituisce una risposta del server con codice di stato 500.
3. Nella nuova scheda aperta, vai a `http://spanote.seccon.games:3000/`. Questa azione memorizza la risposta di `http://spanote.seccon.games:3000/api/token` come cache su disco.
4. Usa `history.back()` per tornare indietro. L'azione comporta il rendering della risposta JSON memorizzata sulla pagina.
2023-01-12 13:44:25 +00:00
2024-02-10 13:03:23 +00:00
La conferma dell'utilizzo della cache su disco può essere verificata tramite l'uso di DevTools in Google Chrome.
2023-01-12 14:56:14 +00:00
2024-02-10 13:03:23 +00:00
Per ulteriori dettagli sulla bfcache e sulla cache su disco, è possibile trovare riferimenti su [web.dev sulla bfcache](https://web.dev/i18n/en/bfcache/) e sui [documenti di progettazione di Chromium sulla cache su disco](https://www.chromium.org/developers/design-documents/network-stack/disk-cache/), rispettivamente.
2023-01-12 14:56:14 +00:00
2023-01-12 13:44:25 +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>
2023-01-12 13:44:25 +00:00
2024-02-10 13:03:23 +00:00
* Lavori in una **azienda di sicurezza informatica**? Vuoi vedere la tua **azienda pubblicizzata su HackTricks**? o vuoi avere accesso all'**ultima versione di PEASS o scaricare HackTricks in PDF**? Controlla i [**PACCHETTI DI ABBONAMENTO**](https://github.com/sponsors/carlospolop)!
* Scopri [**The PEASS Family**](https://opensea.io/collection/the-peass-family), la nostra collezione di [**NFT esclusivi**](https://opensea.io/collection/the-peass-family)
* Ottieni il [**merchandising ufficiale di PEASS & HackTricks**](https://peass.creator-spring.com)
* **Unisciti al** [**💬**](https://emojipedia.org/speech-balloon/) [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo Telegram**](https://t.me/peass) o **seguimi** su **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Condividi i tuoi trucchi di hacking inviando PR al** [**repo hacktricks**](https://github.com/carlospolop/hacktricks) **e al** [**repo hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
2023-01-12 13:44:25 +00:00
</details>