Chrome Cache to XSS
Reading time: 3 minutes
tip
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.
Više detalja u ovom izveštaju.
Tehnika o kojoj se ovde govori uključuje razumevanje ponašanja i interakcije dva glavna tipa keša: back/forward cache (bfcache) i disk cache. Bfcache, koji čuva kompletnu 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 veba 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. Jedan efikasan način da se onemogući bfcache je korišćenjem RelatedActiveContentsExist
, što se postiže 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.
Verifikacija da 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.
tip
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.