Chrome Cache to XSS
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Більш детальна інформація в цьому звіті.
Техніка, обговорювана тут, включає розуміння поведінки та взаємодії двох основних типів кешу: 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, останній повинен бути вимкнений.
За замовчуванням Puppeteer вимикає bfcache, що відповідає умовам, зазначеним у документації Chromium. Один із ефективних методів вимкнення bfcache - це використання RelatedActiveContentsExist
, досягаючи цього шляхом відкриття сторінки з window.open()
, яка зберігає посилання на window.opener
.
Відвідайте веб-сторінку, наприклад, https://example.com
.
Виконайте open("http://spanote.seccon.games:3000/api/token")
, що призводить до відповіді сервера з кодом статусу 500.
У новій вкладці перейдіть на http://spanote.seccon.games:3000/
. Ця дія кешує відповідь http://spanote.seccon.games:3000/api/token
як disk cache.
Використовуйте 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)