4.3 KiB
Chrome Cache to XSS
{% hint style="success" %}
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Check the subscription plans!
- Join the 💬 Discord group or the telegram group or follow us on Twitter 🐦 @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.
Više detalja u ovom izveštaju.
Tehnika koja se ovde razmatra uključuje razumevanje ponašanja i interakcije dva osnovna tipa keša: back/forward cache (bfcache) i disk cache. Bfcache, koji čuva potpunu sliku stranice uključujući JavaScript heap, ima prioritet nad disk kešom za navigacije napred/nazad zbog svoje sposobnosti da čuva sveobuhvatniju sliku. Disk keš, s druge strane, čuva resurse preuzete sa interneta bez uključivanja JavaScript heap-a, i koristi se za navigacije napred/nazad kako bi se smanjili troškovi komunikacije. Zanimljiv aspekt disk keša je njegovo uključivanje resursa preuzetih korišćenjem fetch
, što znači da će resursi sa URL-a biti prikazani od strane pregledača iz keša.
Ključne tačke:
- Bfcache ima prioritet nad disk kešom u navigacijama napred/nazad.
- Da bi se iskoristila stranica smeštena u disk kešu umesto bfcache, potonji mora biti onemogućen.
Onemogućavanje bfcache:
Podrazumevano, Puppeteer onemogućava bfcache, u skladu sa uslovima navedenim u dokumentaciji Chromium-a. Jedna efikasna metoda za onemogućavanje bfcache je korišćenje RelatedActiveContentsExist
, postignuto otvaranjem stranice sa window.open()
koja zadržava referencu na window.opener
.
Reprodukcija ponašanja:
- Posetite veb stranicu, npr.,
https://example.com
. - Izvršite
open("http://spanote.seccon.games:3000/api/token")
, što rezultira odgovorom servera sa status kodom 500. - U novootvorenoj kartici, idite na
http://spanote.seccon.games:3000/
. Ova akcija kešira odgovorhttp://spanote.seccon.games:3000/api/token
kao disk keš. - Koristite
history.back()
da se vratite nazad. Ova akcija rezultira prikazivanjem keširanog JSON odgovora na stranici.
Provera da li je disk keš korišćen može se potvrditi korišćenjem DevTools u Google Chrome-u.
Za dalja objašnjenja o bfcache i disk kešu, reference se mogu naći na web.dev o bfcache i Chromium-ovim dizajnerskim dokumentima o disk kešu, redom.
{% hint style="success" %}
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Check the subscription plans!
- Join the 💬 Discord group or the telegram group or follow us on Twitter 🐦 @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.