hacktricks/pentesting-web/xss-cross-site-scripting/chrome-cache-to-xss.md
2024-02-10 18:14:16 +00:00

4.9 KiB
Raw Blame History

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!

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:

  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.

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!