5.1 KiB
Chrome Cache to XSS
Apprenez le piratage AWS de zéro à héros avec htARTE (Expert de l'équipe rouge AWS de HackTricks)!
- Travaillez-vous dans une entreprise de cybersécurité? Voulez-vous voir votre entreprise annoncée dans HackTricks? ou voulez-vous avoir accès à la dernière version du PEASS ou télécharger HackTricks en PDF? Consultez les PLANS D'ABONNEMENT!
- Découvrez La famille PEASS, notre collection exclusive de NFTs
- Obtenez le swag officiel PEASS & HackTricks
- Rejoignez le 💬 groupe Discord ou le groupe Telegram ou suivez moi sur Twitter 🐦@carlospolopm.
- Partagez vos astuces de piratage en soumettant des PR au dépôt hacktricks et au dépôt hacktricks-cloud.
Plus de détails approfondis dans cet article.
La technique discutée ici implique de comprendre le comportement et l'interaction de deux types de cache principaux : le cache avant/arrière (bfcache) et le cache disque. Le bfcache, qui stocke un instantané complet d'une page incluant le tas JavaScript, est priorisé par rapport au cache disque pour les navigations avant/arrière en raison de sa capacité à stocker un instantané plus complet. Le cache disque, en revanche, stocke des ressources récupérées du web sans inclure le tas JavaScript, et est utilisé pour les navigations avant/arrière afin de réduire les coûts de communication. Un aspect intéressant du cache disque est son inclusion des ressources récupérées à l'aide de fetch
, ce qui signifie que les ressources d'URL consultées seront rendues par le navigateur à partir du cache.
Points clés :
- Le bfcache a la priorité sur le cache disque dans les navigations avant/arrière.
- Pour utiliser une page stockée dans le cache disque au lieu du bfcache, ce dernier doit être désactivé.
Désactivation du bfcache :
Par défaut, Puppeteer désactive le bfcache, en accord avec les conditions énumérées dans la documentation de Chromium. Une méthode efficace pour désactiver le bfcache est l'utilisation de RelatedActiveContentsExist
, obtenue en ouvrant une page avec window.open()
qui conserve une référence à window.opener
.
Reproduction du comportement :
- Visitez une page web, par exemple
https://example.com
. - Exécutez
open("http://spanote.seccon.games:3000/api/token")
, ce qui entraîne une réponse du serveur avec un code d'état 500. - Dans l'onglet nouvellement ouvert, accédez à
http://spanote.seccon.games:3000/
. Cette action met en cache la réponse dehttp://spanote.seccon.games:3000/api/token
en tant que cache disque. - Utilisez
history.back()
pour naviguer en arrière. L'action entraîne le rendu de la réponse JSON mise en cache sur la page.
La confirmation que le cache disque a été utilisé peut être vérifiée en utilisant DevTools dans Google Chrome.
Pour plus de détails sur le bfcache et le cache disque, des références peuvent être trouvées sur web.dev sur le bfcache et les documents de conception de Chromium sur le cache disque, respectivement.
Apprenez le piratage AWS de zéro à héros avec htARTE (Expert de l'équipe rouge AWS de HackTricks)!
- Travaillez-vous dans une entreprise de cybersécurité? Voulez-vous voir votre entreprise annoncée dans HackTricks? ou voulez-vous avoir accès à la dernière version du PEASS ou télécharger HackTricks en PDF? Consultez les PLANS D'ABONNEMENT!
- Découvrez La famille PEASS, notre collection exclusive de NFTs
- Obtenez le swag officiel PEASS & HackTricks
- Rejoignez le 💬 groupe Discord ou le groupe Telegram ou suivez moi sur Twitter 🐦@carlospolopm.
- Partagez vos astuces de piratage en soumettant des PR au dépôt hacktricks et au dépôt hacktricks-cloud.