hacktricks/pentesting-web/xss-cross-site-scripting/chrome-cache-to-xss.md

51 lines
4.9 KiB
Markdown
Raw Normal View History

2024-02-10 18:14:16 +00:00
# Chrome Önbelleği XSS
2023-01-12 13:44:25 +00:00
<details>
2024-02-10 18:14:16 +00:00
<summary><strong>AWS hackleme konusunda sıfırdan kahramana dönüşün</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>ile öğrenin!</strong></summary>
2023-01-12 13:44:25 +00:00
2024-02-10 18:14:16 +00:00
* Bir **cybersecurity şirketinde** çalışıyor musunuz? **Şirketinizi HackTricks'te reklamını görmek** ister misiniz? veya **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* Özel [**NFT'lerimizden oluşan PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter'da** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin**.
* **Hacking hilelerinizi** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **ile göndererek paylaşın**.
2023-01-12 13:44:25 +00:00
</details>
2024-02-10 18:14:16 +00:00
Daha ayrıntılı bilgiler [**bu yazıda**](https://blog.arkark.dev/2022/11/18/seccon-en/#web-spanote) bulunmaktadır.
2023-01-12 13:44:25 +00:00
2024-02-10 18:14:16 +00:00
Burada tartışılan teknik, iki temel önbellek türünün davranışını ve etkileşimini anlamayı içerir: **geri/ileri önbelleği (bfcache)** ve **disk önbelleği**. bfcache, JavaScript yığını da dahil olmak üzere bir sayfanın tam bir anlık görüntüsünü depolar ve daha kapsamlı bir anlık görüntü depolama yeteneğine sahip olduğu için geri/ileri gezinmelerinde disk önbelleğinden önceliklidir. Öte yandan, disk önbelleği, JavaScript yığını içermeyen web'den alınan kaynakları depolar ve geri/ileri gezinmelerde iletişim maliyetlerini azaltmak için kullanılır. Disk önbelleğinin ilginç bir yönü, `fetch` kullanılarak alınan kaynakları içermesidir, bu da tarayıcının önbellekten erişilen URL kaynaklarını render etmesi anlamına gelir.
2023-01-12 13:44:25 +00:00
2024-02-10 18:14:16 +00:00
### Ana Noktalar:
2023-01-12 13:44:25 +00:00
2024-02-10 18:14:16 +00:00
- Geri/ileri gezinmelerde **bfcache**, disk önbelleğinden önceliklidir.
- Bfcache'in yerine disk önbellekte depolanan bir sayfayı kullanmak için bfcache devre dışı bırakılmalıdır.
2023-01-12 13:44:25 +00:00
2024-02-10 18:14:16 +00:00
### Bfcache'in devre dışı bırakılması:
2023-01-12 13:44:25 +00:00
2024-02-10 18:14:16 +00:00
Puppeteer varsayılan olarak bfcache'i devre dışı bırakır ve Chromium'un belgelerinde listelenen koşullarla uyum sağlar. Bfcache'i devre dışı bırakmanın etkili bir yöntemi, `RelatedActiveContentsExist` kullanarak `window.open()` ile bir sayfa açmak ve `window.opener` referansını korumaktır.
2023-01-12 13:44:25 +00:00
2024-02-10 18:14:16 +00:00
### Davranışın yeniden üretilmesi:
2023-01-12 13:44:25 +00:00
2024-02-10 18:14:16 +00:00
1. Bir web sayfasını ziyaret edin, örneğin `https://example.com`.
2. `open("http://spanote.seccon.games:3000/api/token")` komutunu çalıştırın, bu 500 durum koduyla bir sunucu yanıtı alır.
3. Yeni açılan sekmede `http://spanote.seccon.games:3000/` adresine gidin. Bu işlem, `http://spanote.seccon.games:3000/api/token` yanıtını disk önbelleğe bir önbellek olarak kaydeder.
4. `history.back()` kullanarak geri gidin. Bu işlem, önbelleğe alınan JSON yanıtının sayfada render edilmesine neden olur.
2023-01-12 13:44:25 +00:00
2024-02-10 18:14:16 +00:00
Disk önbelleğin kullanıldığının doğrulanması, Google Chrome'daki DevTools kullanılarak teyit edilebilir.
2023-01-12 14:56:14 +00:00
2024-02-10 18:14:16 +00:00
Bfcache ve disk önbellek hakkında daha fazla ayrıntı için, sırasıyla [web.dev'deki bfcache hakkında](https://web.dev/i18n/en/bfcache/) ve [Chromium'un disk önbellek hakkındaki tasarım belgelerinde](https://www.chromium.org/developers/design-documents/network-stack/disk-cache/) referanslar bulunabilir.
2023-01-12 14:56:14 +00:00
2023-01-12 13:44:25 +00:00
<details>
2024-02-10 18:14:16 +00:00
<summary><strong>AWS hackleme konusunda sıfırdan kahramana dönüşün</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>ile öğrenin!</strong></summary>
2023-01-12 13:44:25 +00:00
2024-02-10 18:14:16 +00:00
* Bir **cybersecurity şirketinde** çalışıyor musunuz? **Şirketinizi HackTricks'te reklamını görmek** ister misiniz? veya **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* Özel [**NFT'lerimizden oluşan PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter'da** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin**.
* **Hacking hilelerinizi** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **ile göndererek paylaşın**.
2023-01-12 13:44:25 +00:00
</details>