Chrome Cache to XSS
Last updated
Last updated
Lerne & übe AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Lerne & übe GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Mehr detaillierte Informationen in diesem Bericht.
Die hier diskutierte Technik umfasst das Verständnis des Verhaltens und der Interaktion von zwei primären Cache-Typen: dem Back/Forward Cache (bfcache) und dem Disk Cache. Der bfcache, der einen vollständigen Snapshot einer Seite einschließlich des JavaScript-Heaps speichert, hat Vorrang vor dem Disk Cache bei Rückwärts-/Vorwärtsnavigationen aufgrund seiner Fähigkeit, einen umfassenderen Snapshot zu speichern. Der Disk Cache hingegen speichert Ressourcen, die aus dem Web abgerufen wurden, ohne den JavaScript-Heap einzuschließen, und wird für Rückwärts-/Vorwärtsnavigationen verwendet, um Kommunikationskosten zu reduzieren. Ein interessanter Aspekt des Disk Caches ist seine Einbeziehung von Ressourcen, die mit fetch
abgerufen wurden, was bedeutet, dass aufgerufene URL-Ressourcen vom Browser aus dem Cache gerendert werden.
Der bfcache hat Vorrang vor dem Disk Cache bei Rückwärts-/Vorwärtsnavigationen.
Um eine Seite, die im Disk Cache gespeichert ist, anstelle des bfcache zu nutzen, muss letzterer deaktiviert werden.
Standardmäßig deaktiviert Puppeteer den bfcache, was mit den in der Chromium-Dokumentation aufgeführten Bedingungen übereinstimmt. Eine effektive Methode zur Deaktivierung des bfcache ist die Verwendung von RelatedActiveContentsExist
, die erreicht wird, indem eine Seite mit window.open()
geöffnet wird, die eine Referenz zu window.opener
beibehält.
Besuche eine Webseite, z.B. https://example.com
.
Führe open("http://spanote.seccon.games:3000/api/token")
aus, was zu einer Serverantwort mit einem 500-Statuscode führt.
Navigiere im neu geöffneten Tab zu http://spanote.seccon.games:3000/
. Diese Aktion cached die Antwort von http://spanote.seccon.games:3000/api/token
als Disk Cache.
Verwende history.back()
, um zurück zu navigieren. Die Aktion führt dazu, dass die zwischengespeicherte JSON-Antwort auf der Seite gerendert wird.
Die Überprüfung, dass der Disk Cache genutzt wurde, kann durch die Verwendung von DevTools in Google Chrome bestätigt werden.
Für weitere Details zu bfcache und Disk Cache können Referenzen bei web.dev zu bfcache und Chromiums Entwurfsdokumenten zum Disk Cache gefunden werden.
Lerne & übe AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Lerne & übe GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)