Chrome Cache to XSS

Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support 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, відповідно.

Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks

Last updated