Chrome Cache to XSS
Last updated
Last updated
Ucz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Ucz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Więcej szczegółów w tym opracowaniu.
Technika omówiona tutaj polega na zrozumieniu zachowania i interakcji dwóch głównych typów pamięci podręcznej: back/forward cache (bfcache) i disk cache. bfcache, który przechowuje pełny zrzut strony, w tym stertę JavaScript, ma pierwszeństwo przed pamięcią podręczną dysku w przypadku nawigacji wstecz/naprzód z powodu swojej zdolności do przechowywania bardziej kompleksowego zrzutu. Pamięć podręczna dysku, w przeciwieństwie do tego, przechowuje zasoby pobrane z sieci bez uwzględnienia sterty JavaScript i jest wykorzystywana do nawigacji wstecz/naprzód w celu zmniejszenia kosztów komunikacji. Interesującym aspektem pamięci podręcznej dysku jest jej uwzględnienie zasobów pobranych za pomocą fetch
, co oznacza, że zasoby URL będą renderowane przez przeglądarkę z pamięci podręcznej.
bfcache ma pierwszeństwo przed pamięcią podręczną dysku w nawigacji wstecz/naprzód.
Aby wykorzystać stronę przechowywaną w pamięci podręcznej dysku zamiast bfcache, to ostatnie musi być wyłączone.
Domyślnie Puppeteer wyłącza bfcache, co jest zgodne z warunkami wymienionymi w dokumentacji Chromium. Jedną z efektywnych metod wyłączenia bfcache jest użycie RelatedActiveContentsExist
, osiągnięte poprzez otwarcie strony za pomocą window.open()
, która zachowuje odniesienie do window.opener
.
Odwiedź stronę internetową, np. https://example.com
.
Wykonaj open("http://spanote.seccon.games:3000/api/token")
, co skutkuje odpowiedzią serwera z kodem statusu 500.
W nowo otwartej karcie przejdź do http://spanote.seccon.games:3000/
. Ta akcja buforuje odpowiedź http://spanote.seccon.games:3000/api/token
jako pamięć podręczną dysku.
Użyj history.back()
, aby wrócić. Akcja ta skutkuje renderowaniem buforowanej odpowiedzi JSON na stronie.
Weryfikację, że pamięć podręczna dysku została wykorzystana, można potwierdzić za pomocą DevTools w Google Chrome.
Aby uzyskać więcej informacji na temat bfcache i pamięci podręcznej dysku, odniesienia można znaleźć na web.dev na bfcache oraz dokumentach projektowych Chromium na pamięć podręczną dysku, odpowiednio.
Ucz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Ucz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)