Chrome Cache to XSS
Reading time: 3 minutes
tip
AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)
HackTricks का समर्थन करें
- सदस्यता योजनाएँ देखें!
- हमारे 💬 Discord समूह या टेलीग्राम समूह में शामिल हों या हमारे Twitter 🐦 @hacktricks_live** का पालन करें।**
- हैकिंग ट्रिक्स साझा करें और HackTricks और HackTricks Cloud गिटहब रिपोजिटरी में PRs सबमिट करें।
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:
- एक वेबपृष्ठ पर जाएं, जैसे
https://example.com
। open("http://spanote.seccon.games:3000/api/token")
निष्पादित करें, जिसके परिणामस्वरूप सर्वर प्रतिक्रिया 500 स्थिति कोड के साथ होती है।- नए खोले गए टैब में,
http://spanote.seccon.games:3000/
पर जाएं। यह क्रियाhttp://spanote.seccon.games:3000/api/token
की प्रतिक्रिया को डिस्क कैश के रूप में कैश करती है। history.back()
का उपयोग करके वापस जाएं। यह क्रिया पृष्ठ पर कैश की गई JSON प्रतिक्रिया के रेंडरिंग का परिणाम देती है।
यह सत्यापित करने के लिए कि डिस्क कैश का उपयोग किया गया था, Google Chrome में DevTools का उपयोग किया जा सकता है।
bfcache और डिस्क कैश पर अधिक जानकारी के लिए, संदर्भ web.dev on bfcache और Chromium's design documents on disk cache पर मिल सकते हैं।
tip
AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)
HackTricks का समर्थन करें
- सदस्यता योजनाएँ देखें!
- हमारे 💬 Discord समूह या टेलीग्राम समूह में शामिल हों या हमारे Twitter 🐦 @hacktricks_live** का पालन करें।**
- हैकिंग ट्रिक्स साझा करें और HackTricks और HackTricks Cloud गिटहब रिपोजिटरी में PRs सबमिट करें।