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

51 lines
5.5 KiB
Markdown
Raw Normal View History

# Chrome Cache to XSS
2023-01-12 13:44:25 +00:00
<details>
2023-04-25 18:35:28 +00:00
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
2023-01-12 13:44:25 +00:00
* Trabalha em uma **empresa de cibersegurança**? Gostaria de ver sua **empresa anunciada no HackTricks**? ou quer ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
2023-06-06 18:56:34 +00:00
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-me no** **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para o** [**repositório hacktricks**](https://github.com/carlospolop/hacktricks) **e** [**repositório hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
2023-01-12 13:44:25 +00:00
</details>
Mais detalhes [**neste artigo**](https://blog.arkark.dev/2022/11/18/seccon-en/#web-spanote).
2023-01-12 13:44:25 +00:00
A técnica discutida aqui envolve entender o comportamento e a interação de dois tipos principais de cache: o **cache de avanço/volta (bfcache)** e o **cache de disco**. O bfcache, que armazena um snapshot completo de uma página, incluindo o heap JavaScript, é priorizado sobre o cache de disco para navegações de avanço/volta devido à sua capacidade de armazenar um snapshot mais abrangente. O cache de disco, por outro lado, armazena recursos obtidos da web sem incluir o heap JavaScript e é utilizado para navegações de avanço/volta para reduzir os custos de comunicação. Um aspecto interessante do cache de disco é a inclusão de recursos obtidos usando `fetch`, o que significa que os recursos de URL acessados serão renderizados pelo navegador a partir do cache.
2023-01-12 13:44:25 +00:00
### Pontos Chave:
2023-01-12 13:44:25 +00:00
- O **bfcache** tem precedência sobre o cache de disco em navegações de avanço/volta.
- Para utilizar uma página armazenada no cache de disco em vez do bfcache, este último deve ser desativado.
2023-01-12 13:44:25 +00:00
### Desativando o bfcache:
2023-01-12 13:44:25 +00:00
Por padrão, o Puppeteer desativa o bfcache, alinhando-se com as condições listadas na documentação do Chromium. Um método eficaz para desativar o bfcache é através do uso de `RelatedActiveContentsExist`, alcançado abrindo uma página com `window.open()` que mantém uma referência para `window.opener`.
2023-01-12 13:44:25 +00:00
### Reproduzindo o comportamento:
2023-01-12 13:44:25 +00:00
1. Visite uma página da web, por exemplo, `https://example.com`.
2. Execute `open("http://spanote.seccon.games:3000/api/token")`, o que resulta em uma resposta do servidor com um código de status 500.
3. Na nova aba aberta, navegue para `http://spanote.seccon.games:3000/`. Essa ação armazena a resposta de `http://spanote.seccon.games:3000/api/token` como cache de disco.
4. Use `history.back()` para navegar de volta. A ação resulta na renderização da resposta JSON em cache na página.
2023-01-12 13:44:25 +00:00
A confirmação de que o cache de disco foi utilizado pode ser feita através do uso do DevTools no Google Chrome.
2023-01-12 14:56:14 +00:00
Para mais detalhes sobre bfcache e cache de disco, as referências podem ser encontradas em [web.dev sobre bfcache](https://web.dev/i18n/en/bfcache/) e nos [documentos de design do Chromium sobre cache de disco](https://www.chromium.org/developers/design-documents/network-stack/disk-cache/), respectivamente.
2023-01-12 14:56:14 +00:00
2023-01-12 13:44:25 +00:00
<details>
2023-04-25 18:35:28 +00:00
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
2023-01-12 13:44:25 +00:00
* Trabalha em uma **empresa de cibersegurança**? Gostaria de ver sua **empresa anunciada no HackTricks**? ou quer ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
2023-06-06 18:56:34 +00:00
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-me no** **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para o** [**repositório hacktricks**](https://github.com/carlospolop/hacktricks) **e** [**repositório hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>