# Chrome Cache do XSS
Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)! * Pracujesz w **firmie zajmującej się cyberbezpieczeństwem**? Chcesz zobaczyć swoją **firmę reklamowaną w HackTricks**? A może chcesz mieć dostęp do **najnowszej wersji PEASS lub pobrać HackTricks w formacie PDF**? Sprawdź [**PLAN SUBSKRYPCJI**](https://github.com/sponsors/carlospolop)! * Odkryj [**Rodzinę PEASS**](https://opensea.io/collection/the-peass-family), naszą kolekcję ekskluzywnych [**NFT**](https://opensea.io/collection/the-peass-family) * Zdobądź [**oficjalne gadżety PEASS & HackTricks**](https://peass.creator-spring.com) * **Dołącz do** [**💬**](https://emojipedia.org/speech-balloon/) [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegramowej**](https://t.me/peass) lub **śledź** mnie na **Twitterze** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.** * **Podziel się swoimi sztuczkami hakerskimi, przesyłając PR-y do** [**repozytorium hacktricks**](https://github.com/carlospolop/hacktricks) **i** [**repozytorium hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
Więcej szczegółów [**w tym opracowaniu**](https://blog.arkark.dev/2022/11/18/seccon-en/#web-spanote). Omawiana tutaj technika polega na zrozumieniu zachowania i interakcji dwóch podstawowych typów pamięci podręcznej: **pamięci podręcznej wstecz/przód (bfcache)** i **pamięci podręcznej dysku**. Pamięć podręczna bfcache, która przechowuje kompletny zrzut strony, włącznie z stosem JavaScript, ma pierwszeństwo przed pamięcią podręczną dysku podczas nawigacji wstecz/przód ze względu na możliwość przechowywania bardziej kompleksowego zrzutu. Pamięć podręczna dysku natomiast przechowuje zasoby pobrane z sieci bez uwzględniania stosu JavaScript i jest wykorzystywana podczas nawigacji wstecz/przód w celu zmniejszenia kosztów komunikacji. Ciekawym aspektem pamięci podręcznej dysku jest uwzględnienie zasobów pobranych za pomocą `fetch`, co oznacza, że przeglądarka renderuje zasoby URL dostępne w pamięci podręcznej. ### Kluczowe punkty: - Pamięć podręczna bfcache ma pierwszeństwo przed pamięcią podręczną dysku podczas nawigacji wstecz/przód. - Aby skorzystać z strony przechowywanej w pamięci podręcznej dysku zamiast bfcache, należy wyłączyć ten ostatni. Wyłączanie pamięci podręcznej bfcache: Domyślnie Puppeteer wyłącza pamięć podręczną bfcache, zgodnie z warunkami wymienionymi w dokumentacji Chromium. Skuteczną metodą wyłączenia pamięci podręcznej bfcache jest użycie `RelatedActiveContentsExist`, osiągnięte poprzez otwarcie strony za pomocą `window.open()`, która zachowuje odwołanie do `window.opener`. Reprodukcja zachowania: 1. Odwiedź stronę internetową, np. `https://example.com`. 2. Wykonaj polecenie `open("http://spanote.seccon.games:3000/api/token")`, co skutkuje odpowiedzią serwera z kodem stanu 500. 3. W nowo otwartej karcie przejdź do `http://spanote.seccon.games:3000/`. Ta czynność spowoduje zapisanie odpowiedzi z `http://spanote.seccon.games:3000/api/token` w pamięci podręcznej dysku. 4. Użyj `history.back()`, aby przejść do poprzedniej strony. Spowoduje to wyrenderowanie zapisanej odpowiedzi JSON na stronie. Potwierdzenie wykorzystania pamięci podręcznej dysku można sprawdzić za pomocą narzędzi DevTools w Google Chrome. Aby uzyskać dalsze szczegóły na temat pamięci podręcznej bfcache i dysku, można odnaleźć odnośniki na stronach [web.dev na temat bfcache](https://web.dev/i18n/en/bfcache/) i [dokumentacji Chromium na temat pamięci podręcznej dysku](https://www.chromium.org/developers/design-documents/network-stack/disk-cache/).