Chrome Cache to XSS

Support HackTricks

Meer in-diepte besonderhede in hierdie skrywe.

Die tegniek wat hier bespreek word, behels die begrip van die gedrag en interaksie van twee primêre cache tipes: die back/forward cache (bfcache) en die disk cache. Die bfcache, wat 'n volledige snapshot van 'n bladsy stoor, insluitend die JavaScript heap, het prioriteit bo die disk cache vir terug/voor navigasies weens sy vermoë om 'n meer omvattende snapshot te stoor. Die disk cache, in teenstelling, stoor hulpbronne wat van die web verkry is sonder om die JavaScript heap in te sluit, en word gebruik vir terug/voor navigasies om kommunikasiekoste te verminder. 'n Interessante aspek van die disk cache is die insluiting van hulpbronne wat met fetch verkry is, wat beteken dat toegang URL hulpbronne deur die blaaier uit die cache gerender sal word.

Sleutelpunte:

  • Die bfcache het voorrang bo die disk cache in terug/voor navigasies.

  • Om 'n bladsy wat in disk cache gestoor is te gebruik in plaas van bfcache, moet laasgenoemde gedeaktiveer word.

Deaktiveer bfcache:

Standaard deaktiveer Puppeteer bfcache, wat ooreenstem met die voorwaardes wat in Chromium se dokumentasie gelys is. Een effektiewe metode om bfcache te deaktiveer is deur die gebruik van RelatedActiveContentsExist, wat bereik word deur 'n bladsy met window.open() te open wat 'n verwysing na window.opener behou.

Herproduksie van die gedrag:

  1. Besoek 'n webblad, bv. https://example.com.

  2. Voer open("http://spanote.seccon.games:3000/api/token") uit, wat 'n bedienerantwoord met 'n 500 statuskode tot gevolg het.

  3. In die nuut geopende oortjie, navigeer na http://spanote.seccon.games:3000/. Hierdie aksie cache die antwoord van http://spanote.seccon.games:3000/api/token as 'n disk cache.

  4. Gebruik history.back() om terug te navigeer. Die aksie lei tot die rendering van die gecachede JSON antwoord op die bladsy.

Verifikasie dat die disk cache gebruik is, kan bevestig word deur die gebruik van DevTools in Google Chrome.

Vir verdere besonderhede oor bfcache en disk cache, kan verwysings gevind word by web.dev oor bfcache en Chromium se ontwerpdokumente oor disk cache, onderskeidelik.

Support HackTricks

Last updated