Chrome Cache to XSS
Reading time: 2 minutes
tip
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
HackTricks'i Destekleyin
- abonelik planlarını kontrol edin!
- Bize katılın 💬 Discord grubuna veya telegram grubuna veya bizi takip edin Twitter'da 🐦 @hacktricks_live.
- Hacking ipuçlarını paylaşın, HackTricks ve HackTricks Cloud github reposuna PR göndererek.
Daha derinlemesine detaylar bu yazıda.
Burada tartışılan teknik, iki ana önbellek türünün davranışını ve etkileşimini anlamayı içerir: back/forward cache (bfcache) ve disk cache. JavaScript yığınını da içeren bir sayfanın tam bir anlık görüntüsünü saklayan bfcache, daha kapsamlı bir anlık görüntü saklama yeteneği nedeniyle geri/ileri navigasyonlar için disk önbellekten önceliklidir. Disk önbellek ise, JavaScript yığınını içermeden web'den alınan kaynakları saklar ve iletişim maliyetlerini azaltmak için geri/ileri navigasyonlarda kullanılır. Disk önbelleğin ilginç bir yönü, fetch
kullanılarak alınan kaynakları içermesidir; bu, erişilen URL kaynaklarının tarayıcı tarafından önbellekten işleneceği anlamına gelir.
Ana Noktalar:
- bfcache, geri/ileri navigasyonlarda disk önbellekten önceliklidir.
- Disk önbellekte saklanan bir sayfayı kullanmak için bfcache devre dışı bırakılmalıdır.
bfcache'i devre dışı bırakma:
Varsayılan olarak, Puppeteer bfcache'i devre dışı bırakır ve bu, Chromium'un belgelerinde listelenen koşullarla uyumludur. bfcache'i devre dışı bırakmanın etkili bir yöntemi, window.opener
referansını koruyan window.open()
ile bir sayfa açarak RelatedActiveContentsExist
kullanmaktır.
Davranışı yeniden üretme:
- 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 kodu ile bir sunucu yanıtı almanıza neden olur.- 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ği olarak saklar. - Geri gitmek için
history.back()
kullanın. Bu işlem, sayfada önbelleğe alınmış JSON yanıtının işlenmesine neden olur.
Disk önbelleğin kullanıldığını doğrulamak için Google Chrome'daki DevTools kullanılabilir.
bfcache ve disk önbellek hakkında daha fazla detay için referanslar web.dev'de bfcache ve Chromium'un disk önbellek tasarım belgeleri adreslerinde bulunabilir.
tip
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
HackTricks'i Destekleyin
- abonelik planlarını kontrol edin!
- Bize katılın 💬 Discord grubuna veya telegram grubuna veya bizi takip edin Twitter'da 🐦 @hacktricks_live.
- Hacking ipuçlarını paylaşın, HackTricks ve HackTricks Cloud github reposuna PR göndererek.