Chrome Cache to XSS
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
More in depth details in this writeup.
यहां चर्चा की गई तकनीक दो प्रमुख कैश प्रकारों के व्यवहार और इंटरैक्शन को समझने में शामिल है: back/forward cache (bfcache) और disk cache। bfcache, जो एक पृष्ठ का एक संपूर्ण स्नैपशॉट संग्रहीत करता है जिसमें JavaScript heap शामिल है, बैक/फॉरवर्ड नेविगेशन के लिए डिस्क कैश की तुलना में प्राथमिकता दी जाती है क्योंकि यह एक अधिक व्यापक स्नैपशॉट संग्रहीत करने की क्षमता रखता है। इसके विपरीत, डिस्क कैश, वेब से प्राप्त संसाधनों को संग्रहीत करता है बिना JavaScript heap को शामिल किए, और बैक/फॉरवर्ड नेविगेशन के लिए संचार लागत को कम करने के लिए उपयोग किया जाता है। डिस्क कैश का एक दिलचस्प पहलू यह है कि इसमें fetch
का उपयोग करके प्राप्त संसाधन शामिल होते हैं, जिसका अर्थ है कि एक्सेस किए गए URL संसाधनों को ब्राउज़र द्वारा कैश से रेंडर किया जाएगा।
bfcache बैक/फॉरवर्ड नेविगेशन में डिस्क कैश पर प्राथमिकता रखता है।
डिस्क कैश में संग्रहीत पृष्ठ का उपयोग करने के लिए, bfcache को निष्क्रिय करना होगा।
डिफ़ॉल्ट रूप से, Puppeteer bfcache को निष्क्रिय करता है, जो Chromium के दस्तावेज़ों में सूचीबद्ध शर्तों के साथ मेल खाता है। bfcache को निष्क्रिय करने का एक प्रभावी तरीका RelatedActiveContentsExist
का उपयोग करना है, जो window.open()
के साथ एक पृष्ठ खोलकर प्राप्त किया जाता है जो window.opener
का संदर्भ बनाए रखता है।
एक वेबपृष्ठ पर जाएं, जैसे 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 पर पाए जा सकते हैं।
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)