4.8 KiB
Chrome Cache to XSS
Aprenda hacking AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!
- Você 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!
- Descubra A Família PEASS, nossa coleção exclusiva de NFTs
- Adquira o swag oficial do PEASS & HackTricks
- Junte-se ao 💬 grupo Discord ou ao grupo telegram ou siga-me no Twitter 🐦@carlospolopm.
- Compartilhe seus truques de hacking enviando PRs para o repositório hacktricks e repositório hacktricks-cloud.
Mais detalhes aprofundados neste artigo.
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 uma captura completa 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 uma captura 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.
Pontos Chave:
- 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.
Desativando o bfcache:
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 a window.opener
.
Reproduzindo o comportamento:
- Visite uma página da web, por exemplo,
https://example.com
. - Execute
open("http://spanote.seccon.games:3000/api/token")
, o que resulta em uma resposta do servidor com um código de status 500. - Na nova aba aberta, navegue para
http://spanote.seccon.games:3000/
. Essa ação armazena a resposta dehttp://spanote.seccon.games:3000/api/token
como cache de disco. - Use
history.back()
para navegar de volta. A ação resulta na renderização da resposta JSON em cache na página.
A verificação de que o cache de disco foi utilizado pode ser confirmada através do uso do DevTools no Google Chrome.
Para mais detalhes sobre bfcache e cache de disco, as referências podem ser encontradas em web.dev sobre bfcache e nos documentos de design do Chromium sobre cache de disco, respectivamente.
Aprenda hacking AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!
- Você 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!
- Descubra A Família PEASS, nossa coleção exclusiva de NFTs
- Adquira o swag oficial do PEASS & HackTricks
- Junte-se ao 💬 grupo Discord ou ao grupo telegram ou siga-me no Twitter 🐦@carlospolopm.
- Compartilhe seus truques de hacking enviando PRs para o repositório hacktricks e repositório hacktricks-cloud.