Chrome Cache to XSS

Reading time: 2 minutes

tip

Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Підтримайте HackTricks

Більш детальна інформація в цьому звіті.

Техніка, обговорювана тут, включає розуміння поведінки та взаємодії двох основних типів кешу: back/forward cache (bfcache) та disk cache. bfcache, який зберігає повну знімок сторінки, включаючи JavaScript heap, має пріоритет над disk cache для навігацій назад/вперед через свою здатність зберігати більш комплексний знімок. Disk cache, навпаки, зберігає ресурси, отримані з вебу, не включаючи JavaScript heap, і використовується для навігацій назад/вперед, щоб зменшити витрати на зв'язок. Цікавим аспектом disk cache є його включення ресурсів, отриманих за допомогою fetch, що означає, що ресурси URL, до яких було отримано доступ, будуть відображені браузером з кешу.

Ключові моменти:

  • bfcache має пріоритет над disk cache у навігаціях назад/вперед.
  • Щоб використовувати сторінку, збережену в disk cache, замість bfcache, останній повинен бути вимкнений.

Вимкнення bfcache:

За замовчуванням Puppeteer вимикає bfcache, що відповідає умовам, зазначеним у документації Chromium. Один із ефективних методів вимкнення bfcache - це використання RelatedActiveContentsExist, досягається шляхом відкриття сторінки з window.open(), яка зберігає посилання на window.opener.

Відтворення поведінки:

  1. Відвідайте веб-сторінку, наприклад, https://example.com.
  2. Виконайте open("http://spanote.seccon.games:3000/api/token"), що призводить до відповіді сервера з кодом статусу 500.
  3. У новій вкладці перейдіть на http://spanote.seccon.games:3000/. Ця дія кешує відповідь http://spanote.seccon.games:3000/api/token як disk cache.
  4. Використовуйте history.back(), щоб повернутися назад. Ця дія призводить до відображення кешованої JSON-відповіді на сторінці.

Перевірити, що disk cache був використаний, можна за допомогою DevTools у Google Chrome.

Для отримання додаткової інформації про bfcache та disk cache посилання можна знайти на web.dev про bfcache та документах дизайну Chromium про disk cache, відповідно.

tip

Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Підтримайте HackTricks