Chrome Cache to XSS

Support HackTricks

More in depth details in this writeup.

यहां चर्चा की गई तकनीक दो प्रमुख कैश प्रकारों के व्यवहार और इंटरैक्शन को समझने में शामिल है: back/forward cache (bfcache) और disk cache। bfcache, जो एक पृष्ठ का एक संपूर्ण स्नैपशॉट संग्रहीत करता है जिसमें JavaScript heap शामिल है, बैक/फॉरवर्ड नेविगेशन के लिए डिस्क कैश की तुलना में प्राथमिकता दी जाती है क्योंकि यह एक अधिक व्यापक स्नैपशॉट संग्रहीत करने की क्षमता रखता है। इसके विपरीत, डिस्क कैश, वेब से प्राप्त संसाधनों को संग्रहीत करता है बिना JavaScript heap को शामिल किए, और संचार लागत को कम करने के लिए बैक/फॉरवर्ड नेविगेशन के लिए उपयोग किया जाता है। डिस्क कैश का एक दिलचस्प पहलू यह है कि इसमें fetch का उपयोग करके प्राप्त संसाधन शामिल होते हैं, जिसका अर्थ है कि एक्सेस किए गए URL संसाधनों को ब्राउज़र द्वारा कैश से रेंडर किया जाएगा।

Key Points:

  • bfcache बैक/फॉरवर्ड नेविगेशन में डिस्क कैश पर प्राथमिकता रखता है।

  • डिस्क कैश में संग्रहीत पृष्ठ का उपयोग करने के लिए, bfcache को निष्क्रिय करना आवश्यक है।

Disabling bfcache:

डिफ़ॉल्ट रूप से, Puppeteer bfcache को निष्क्रिय करता है, जो Chromium के दस्तावेज़ों में सूचीबद्ध शर्तों के साथ मेल खाता है। bfcache को निष्क्रिय करने का एक प्रभावी तरीका RelatedActiveContentsExist का उपयोग करना है, जो window.open() के साथ एक पृष्ठ खोलकर प्राप्त किया जाता है जो window.opener का संदर्भ बनाए रखता है।

Reproducing the behavior:

  1. एक वेबपृष्ठ पर जाएं, जैसे https://example.com

  2. open("http://spanote.seccon.games:3000/api/token") निष्पादित करें, जिसके परिणामस्वरूप सर्वर प्रतिक्रिया 500 स्थिति कोड के साथ होती है।

  3. नए खुले टैब में, http://spanote.seccon.games:3000/ पर जाएं। यह क्रिया http://spanote.seccon.games:3000/api/token की प्रतिक्रिया को डिस्क कैश के रूप में कैश करती है।

  4. history.back() का उपयोग करके वापस जाएं। यह क्रिया पृष्ठ पर कैश की गई JSON प्रतिक्रिया को रेंडर करने का परिणाम देती है।

यह सत्यापित करना कि डिस्क कैश का उपयोग किया गया था, Google Chrome में DevTools के उपयोग के माध्यम से किया जा सकता है।

bfcache और डिस्क कैश पर अधिक विवरण के लिए, संदर्भ web.dev on bfcache और Chromium's design documents on disk cache पर पाए जा सकते हैं।

Support HackTricks

Last updated