4.9 KiB
Chrome Önbelleği XSS
AWS hackleme konusunda sıfırdan kahramana dönüşün htARTE (HackTricks AWS Kırmızı Takım Uzmanı)ile öğrenin!
- 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 kontrol edin!
- Özel NFT'lerimizden oluşan PEASS Ailesi'ni keşfedin
- Resmi PEASS & HackTricks ürünlerini edinin
- 💬 Discord grubuna veya telegram grubuna katılın veya Twitter'da 🐦@carlospolopm'u takip edin.
- Hacking hilelerinizi hacktricks repo ve hacktricks-cloud repo ile göndererek paylaşın.
Daha ayrıntılı bilgiler bu yazıda bulunmaktadır.
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.
Ana Noktalar:
- 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.
Bfcache'in devre dışı bırakılması:
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.
Davranışın yeniden üretilmesi:
- Bir web sayfasını ziyaret edin, örneğin
https://example.com
. open("http://spanote.seccon.games:3000/api/token")
komutunu çalıştırın, bu 500 durum koduyla bir sunucu yanıtı alır.- 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. history.back()
kullanarak geri gidin. Bu işlem, önbelleğe alınan JSON yanıtının sayfada render edilmesine neden olur.
Disk önbelleğin kullanıldığının doğrulanması, Google Chrome'daki DevTools kullanılarak teyit edilebilir.
Bfcache ve disk önbellek hakkında daha fazla ayrıntı için, sırasıyla web.dev'deki bfcache hakkında ve Chromium'un disk önbellek hakkındaki tasarım belgelerinde referanslar bulunabilir.
AWS hackleme konusunda sıfırdan kahramana dönüşün htARTE (HackTricks AWS Kırmızı Takım Uzmanı)ile öğrenin!
- 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 kontrol edin!
- Özel NFT'lerimizden oluşan PEASS Ailesi'ni keşfedin
- Resmi PEASS & HackTricks ürünlerini edinin
- 💬 Discord grubuna veya telegram grubuna katılın veya Twitter'da 🐦@carlospolopm'u takip edin.
- Hacking hilelerinizi hacktricks repo ve hacktricks-cloud repo ile göndererek paylaşın.