mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-25 22:20:43 +00:00
55 lines
4.3 KiB
Markdown
55 lines
4.3 KiB
Markdown
# Chrome Cache to XSS
|
|
|
|
{% hint style="success" %}
|
|
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
|
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
|
|
|
<details>
|
|
|
|
<summary>Support HackTricks</summary>
|
|
|
|
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
|
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
|
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
|
|
|
</details>
|
|
{% endhint %}
|
|
|
|
Više detalja [**u ovom izveštaju**](https://blog.arkark.dev/2022/11/18/seccon-en/#web-spanote).
|
|
|
|
Tehnika koja se ovde razmatra uključuje razumevanje ponašanja i interakcije dva osnovna tipa keša: **back/forward cache (bfcache)** i **disk cache**. Bfcache, koji čuva potpunu sliku stranice uključujući JavaScript heap, ima prioritet nad disk kešom za navigacije napred/nazad zbog svoje sposobnosti da čuva sveobuhvatniju sliku. Disk keš, s druge strane, čuva resurse preuzete sa interneta bez uključivanja JavaScript heap-a, i koristi se za navigacije napred/nazad kako bi se smanjili troškovi komunikacije. Zanimljiv aspekt disk keša je njegovo uključivanje resursa preuzetih korišćenjem `fetch`, što znači da će resursi sa URL-a biti prikazani od strane pregledača iz keša.
|
|
|
|
### Ključne tačke:
|
|
|
|
- **Bfcache** ima prioritet nad disk kešom u navigacijama napred/nazad.
|
|
- Da bi se iskoristila stranica smeštena u disk kešu umesto bfcache, potonji mora biti onemogućen.
|
|
|
|
### Onemogućavanje bfcache:
|
|
|
|
Podrazumevano, Puppeteer onemogućava bfcache, u skladu sa uslovima navedenim u dokumentaciji Chromium-a. Jedna efikasna metoda za onemogućavanje bfcache je korišćenje `RelatedActiveContentsExist`, postignuto otvaranjem stranice sa `window.open()` koja zadržava referencu na `window.opener`.
|
|
|
|
### Reprodukcija ponašanja:
|
|
|
|
1. Posetite veb stranicu, npr., `https://example.com`.
|
|
2. Izvršite `open("http://spanote.seccon.games:3000/api/token")`, što rezultira odgovorom servera sa status kodom 500.
|
|
3. U novootvorenoj kartici, idite na `http://spanote.seccon.games:3000/`. Ova akcija kešira odgovor `http://spanote.seccon.games:3000/api/token` kao disk keš.
|
|
4. Koristite `history.back()` da se vratite nazad. Ova akcija rezultira prikazivanjem keširanog JSON odgovora na stranici.
|
|
|
|
Provera da li je disk keš korišćen može se potvrditi korišćenjem DevTools u Google Chrome-u.
|
|
|
|
Za dalja objašnjenja o bfcache i disk kešu, reference se mogu naći na [web.dev o bfcache](https://web.dev/i18n/en/bfcache/) i [Chromium-ovim dizajnerskim dokumentima o disk kešu](https://www.chromium.org/developers/design-documents/network-stack/disk-cache/), redom.
|
|
|
|
{% hint style="success" %}
|
|
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
|
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
|
|
|
<details>
|
|
|
|
<summary>Support HackTricks</summary>
|
|
|
|
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
|
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
|
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
|
|
|
</details>
|
|
{% endhint %}
|