Chrome Cache to XSS

Jifunze kuhusu kudukua AWS kutoka sifuri hadi shujaa na htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)!

Maelezo zaidi katika andishi hili.

Teknolojia inayojadiliwa hapa inahusisha kuelewa tabia na mwingiliano wa aina mbili kuu za cache: back/forward cache (bfcache) na disk cache. Bfcache, ambayo inahifadhi nakala kamili ya ukurasa ikiwa ni pamoja na JavaScript heap, inapewa kipaumbele kuliko disk cache kwa urambazaji wa nyuma/mbele kutokana na uwezo wake wa kuhifadhi nakala kamili zaidi. Disk cache, kwa upande mwingine, inahifadhi rasilimali zilizopatikana kutoka wavuti bila kujumuisha JavaScript heap, na hutumiwa kwa urambazaji wa nyuma/mbele ili kupunguza gharama za mawasiliano. Jambo la kuvutia kuhusu disk cache ni pamoja na rasilimali zilizopatikana kwa kutumia fetch, maana rasilimali za URL zilizopatikana zitarejeshwa na kivinjari kutoka kwenye cache.

Mambo muhimu:

  • Bfcache ina kipaumbele kuliko disk cache katika urambazaji wa nyuma/mbele.

  • Ili kutumia ukurasa uliohifadhiwa kwenye disk cache badala ya bfcache, bfcache inapaswa kuzimwa.

Kuzima bfcache:

Kwa chaguo-msingi, Puppeteer inazima bfcache, kulingana na hali zilizoorodheshwa katika nyaraka za Chromium. Njia moja yenye ufanisi ya kuzima bfcache ni kwa kutumia RelatedActiveContentsExist, ambayo inafikiwa kwa kufungua ukurasa na window.open() ambao unahifadhi kumbukumbu ya window.opener.

Kurejesha tabia:

  1. Tembelea ukurasa wa wavuti, kwa mfano, https://example.com.

  2. Tekeleza open("http://spanote.seccon.games:3000/api/token"), ambayo inasababisha jibu la seva na msimbo wa hali 500.

  3. Katika kichupo kilichofunguliwa kipya, naviga hadi http://spanote.seccon.games:3000/. Hatua hii inahifadhi jibu la http://spanote.seccon.games:3000/api/token kama disk cache.

  4. Tumia history.back() kurudi nyuma. Hatua hiyo inasababisha uonyeshaji wa jibu la JSON lililohifadhiwa kwenye ukurasa.

Uhakiki kwamba disk cache ilikuwa imetumika inaweza kuthibitishwa kwa kutumia DevTools kwenye Google Chrome.

Kwa maelezo zaidi kuhusu bfcache na disk cache, marejeleo yanaweza kupatikana kwenye web.dev kuhusu bfcache na nyaraka za kubuni za Chromium kuhusu disk cache, mtawaliwa.

Last updated