Special HTTP headers

जानें AWS हैकिंग को शून्य से हीरो तक htARTE (HackTricks AWS Red Team Expert) के साथ!

HackTricks का समर्थन करने के अन्य तरीके:

शब्दसूची और उपकरण

स्थान बदलने के हेडर

IP स्रोत पुनरलेखित करें:

  • X-Originating-IP: 127.0.0.1

  • X-Forwarded-For: 127.0.0.1

  • X-Forwarded: 127.0.0.1

  • Forwarded-For: 127.0.0.1

  • X-Forwarded-Host: 127.0.0.1

  • X-Remote-IP: 127.0.0.1

  • X-Remote-Addr: 127.0.0.1

  • X-ProxyUser-Ip: 127.0.0.1

  • X-Original-URL: 127.0.0.1

  • Client-IP: 127.0.0.1

  • X-Client-IP: 127.0.0.1

  • X-Host: 127.0.0.1

  • True-Client-IP: 127.0.0.1

  • Cluster-Client-IP: 127.0.0.1

  • Via: 1.0 fred, 1.1 127.0.0.1

  • Connection: close, X-Forwarded-For (हॉप-बाई-हॉप हेडर्स की जांच करें)

स्थान पुनरलेखित करें:

  • X-Original-URL: /admin/console

  • X-Rewrite-URL: /admin/console

हॉप-बाई-हॉप हेडर्स

हॉप-बाई-हॉप हेडर एक हेडर है जिसे वर्तमान में अनुरोध संभालने वाले प्रॉक्सी द्वारा प्रसंस्कृत और उपभोग किया जाने के लिए डिज़ाइन किया गया है, बाह्य-से-बाह्य हेडर के विपरीत।

  • Connection: close, X-Forwarded-For

pagehop-by-hop headers

HTTP अनुरोध स्मग्लिंग

  • Content-Length: 30

  • Transfer-Encoding: chunked

pageHTTP Request Smuggling / HTTP Desync Attack

कैश हेडर्स

सर्वर कैश हेडर्स:

  • X-Cache प्रतिसाद में मान miss हो सकता है जब अनुरोध कैश नहीं किया गया था और मान hit हो सकता है जब यह कैश किया गया है

  • हेडर Cf-Cache-Status में भी समान व्यवहार हो सकता है

  • Cache-Control इसका संकेत देता है कि क्या एक संसाधन कैश हो रहा है और अगली बार संसाधन कैश होगा: Cache-Control: public, max-age=1800

  • Vary उत्तर में अक्सर उपयोग किया जाता है और हेडर्स को संकेतित करता है जो सामान्यत: अकीय होते हैं उन्हें कैश कुंजी का हिस्सा माना जाता है।

  • Age परिभाषित करता है कि प्रॉक्सी कैश में वस्तु कितने सेकंड से है।

  • Server-Timing: cdn-cache; desc=HIT भी इसका संकेत देता है कि एक संसाधन कैश किया गया था

pageCache Poisoning and Cache Deception

स्थानीय कैश हेडर्स:

  • Clear-Site-Data: कैश को संकेतित करने वाला हेडर: Clear-Site-Data: "cache", "cookies"

  • Expires: उत्तर का समय/तिथि जब यह समाप्त होना चाहिए: Expires: Wed, 21 Oct 2015 07:28:00 GMT

  • Pragma: no-cache Cache-Control: no-cache के समान है

  • Warning: Warning सामान्य HTTP हेडर में संदेश के स्थिति के साथ संभावित समस्याओं के बारे में जानकारी शामिल है। एक प्रतिक्रिया में एक से अधिक Warning हेडर दिख सकता है। Warning: 110 anderson/1.3.37 "Response is stale"

शर्ताधारित

  • इन हेडर्स का उपयोग करने वाले अनुरोध: If-Modified-Since और If-Unmodified-Since केवल उत्तर देंगे अगर प्रतिक्रिया हेडर Last-Modified में एक विभिन्न समय है।

  • If-Match और If-None-Match का उपयोग करके शर्ताधारित अनुरोध एक Etag मान का उपयोग करते हैं ताकि वेब सर्वर उत्तर की सामग्री भेजेगा अगर डेटा (Etag) बदल गया है। Etag HTTP प्रतिक्रिया से लिया जाता है।

  • Etag मान आम तौर पर प्रतिक्रिया की सामग्री के आधार पर गणित किया जाता है। उदाहरण के लिए, ETag: W/"37-eL2g8DEyqntYlaLp5XLInBWsjWI" इसका संकेत देता है कि Etag 37 बाइट का Sha1 है।

सीमा अनुरोध

  • Accept-Ranges: यह दर्शाता है कि सर्वर सीमा अनुरोधों का समर्थन करता है, और यदि हां, तो किस इकाई में सीमा व्यक्त किया जा सकता है। Accept-Ranges: <range-unit>

  • Range: सर्वर को वापस करना चाहिए दस्तावेज़ का हिस्सा दर्शाता है।

  • If-Range: एक शर्ताधारित सीमा अनुरोध बनाता है जो केवल उस समय पूरा होगा जब दिया गया etag या तिथि दूरस्थ संसाधन से मेल खाती है। असंगत संस्करण के दो संसाधनों से दो सीमाएँ डाउनलोड करने से रोकने के लिए उपयोग किया जाता है।

  • Content-Range: पूरे शरीर संदेश में एक आंशिक संदेश का स्थान दर्शाता है।

संदेश शरीर जानकारी

  • Content-Length: संसाधन का आकार, बाइट की दशमलव संख्या में।

  • Content-Type: संसाधन के मीडिया प्रकार को दर्शाता है

  • Content-Encoding: संकुचन एल्गोरिदम को निर्दिष्ट करने के लिए उपयोग किया जाता है।

  • Content-Language: उपभोक्ता के लिए निर्देशित मानव भाषा(एं) का वर्णन करता है, ताकि उपयोगकर्ता अपनी पसंदीदा भाषा के अनुसार भिन्न कर सके।

  • Content-Location: वापसी डेटा के लिए एक वैकल्पिक स्थान दर्शाता है।

पेंटेस्ट के दृष्टिकोण से यह जानकारी आम तौर पर "अनर्थक" होती है, लेकिन यदि संसाधन को 401 या 403 द्वारा संरक्षित किया गया है और आप कुछ तरीका खोज सकते हैं इस जानकारी को प्राप्त करने के लिए, तो यह "दिलचस्प" हो सकता है। उदाहरण के लिए, HEAD अनुरोध में Range और Etag का संयोजन पृष्ठ की सामग्री को HEAD अनुरोध के माध्यम से लीक कर सकता है:

  • एक हेडर के साथ अनुरोध Range: bytes=20-20 और एक प्रतिक्रिया जिसमें ETag: W/"1-eoGvPlkaxxP4HqHv6T3PNhV9g3Y" है, यह लीक कर रहा है कि बाइट 20 का SHA1 ETag: eoGvPlkaxxP4HqHv6T3PNhV9g3Y है।

सर्वर जानकारी

  • सर्वर: Apache/2.4.1 (Unix)

  • X-Powered-By: PHP/5.3.3

नियंत्रण

  • Allow: यह हेडर उस HTTP methods को संदेशित करने के लिए उपयोग किया जाता है जिनका संसाधन संभाल सकता है। उदाहरण के रूप में, यह निर्दिष्ट किया जा सकता है जैसे Allow: GET, POST, HEAD, जिससे संसाधन इन methods का समर्थन करता है।

  • Expect: ग्राहक द्वारा उपयोग किया जाता है ताकि सर्वर को अपेक्षाएं संदेशित कर सके जिन्हें अनुरूप कार्रवाई करनी चाहिए ताकि अनुरोध को सफलतापूर्वक प्रसंस्कृत किया जा सके। एक सामान्य उपयोग मामला Expect: 100-continue हेडर में होता है, जो संकेत करता है कि ग्राहक बड़े डेटा पेलोड भेजने का इरादा रखता है। ग्राहक ट्रांसमिशन के साथ आगे बढ़ने से पहले 100 (Continue) प्रतिक्रिया की खोज करता है। यह तंतु का उपयोग करके नेटवर्क उपयोग को अनुकूलित करने में मदद करता है।

डाउनलोड

  • HTTP प्रतिक्रियाओं में Content-Disposition हेडर दिशा निर्देशित करता है कि क्या एक फ़ाइल को inline (वेबपेज के भीतर) दिखाया जाना चाहिए या एक attachment (डाउनलोड) के रूप में व्यवहार किया जाना चाहिए। उदाहरण के रूप में:

Content-Disposition: attachment; filename="filename.jpg"

सुरक्षा हेडर्स

सामग्री सुरक्षा नीति (CSP)

pageContent Security Policy (CSP) Bypass

विश्वसनीय प्रकार

CSP के माध्यम से Trusted Types को प्रवर्तित करके, एप्लिकेशन DOM XSS हमलों के खिलाफ सुरक्षित बनाई जा सकती है। Trusted Types सुनिश्चित करते हैं कि केवल विशिष्ट रूप से बनाए गए वस्तुओं का उपयोग किया जा सकता है, स्थापित सुरक्षा नीतियों के अनुरूप, खतरनाक वेब API कॉल में, इसके द्वारा जावास्क्रिप्ट कोड को डिफ़ॉल्ट रूप से सुरक्षित बनाते हैं।

// Feature detection
if (window.trustedTypes && trustedTypes.createPolicy) {
// Name and create a policy
const policy = trustedTypes.createPolicy('escapePolicy', {
createHTML: str => str.replace(/\</g, '&lt;').replace(/>/g, '&gt;');
});
}
// Assignment of raw strings is blocked, ensuring safety.
el.innerHTML = 'some string'; // Throws an exception.
const escaped = policy.createHTML('<img src=x onerror=alert(1)>');
el.innerHTML = escaped;  // Results in safe assignment.

X-Content-Type-Options

यह हेडर MIME प्रकार स्निफिंग को रोकता है, जो XSS संरचनाओं की ओर ले जा सकता है। यह सुनिश्चित करता है कि ब्राउज़र्स सर्वर द्वारा निर्दिष्ट MIME प्रकार का सम्मान करें।

X-Content-Type-Options: nosniff

X-Frame-Options

क्लिकजैकिंग को रोकने के लिए, यह हेडर यह निर्देशित करता है कि दस्तावेज को कैसे <frame>, <iframe>, <embed>, या <object> टैग में समाहित किया जा सकता है, सभी दस्तावेज को अपनी समाहिति अनुमतियों को स्पष्ट रूप से निर्दिष्ट करने की सिफारिश करता है।

X-Frame-Options: DENY

क्रॉस-ऑरिजिन संसाधन नीति (CORP) और क्रॉस-ऑरिजिन संसाधन साझेदारी (CORS)

CORP वेबसाइट्स द्वारा कौन से संसाधन लोड किए जा सकते हैं को निर्दिष्ट करने के लिए महत्वपूर्ण है, क्रॉस-साइट लीक को कम करने। दूसरी ओर, CORS, एक और लचीली क्रॉस-ऑरिजिन संसाधन साझेदारी तंत्र के लिए अनुमति देता है, जो कुछ विशेष परिस्थितियों के तहत सेम-ऑरिजिन नीति को ढीला करता है।

Cross-Origin-Resource-Policy: same-origin
Access-Control-Allow-Origin: https://example.com
Access-Control-Allow-Credentials: true

क्रॉस-ओरिजिन एम्बेडर नीति (COEP) और क्रॉस-ओरिजिन ओपनर नीति (COOP)

COEP और COOP क्रॉस-ओरिजिन आलावन को सक्षम करने के लिए आवश्यक हैं, स्पेक्टर जैसे हमलों के जोखिम को काफी कम करते हैं। वे क्रॉस-ओरिजिन संसाधनों के लोडिंग और क्रॉस-ओरिजिन विंडोज के साथ बातचीत को नियंत्रित करते हैं।

Cross-Origin-Embedder-Policy: require-corp
Cross-Origin-Opener-Policy: same-origin-allow-popups

HTTP सख्त परिवहन सुरक्षा (HSTS)

अंततः, HSTS एक सुरक्षा सुविधा है जो ब्राउज़र को केवल सुरक्षित HTTPS कनेक्शन के माध्यम से सर्वरों के साथ संवाद करने के लिए मजबूर करती है, जिससे गोपनीयता और सुरक्षा में सुधार होता है।

Strict-Transport-Security: max-age=3153600

संदर्भ

जानें AWS हैकिंग को शून्य से हीरो तक htARTE (HackTricks AWS Red Team Expert)!

HackTricks का समर्थन करने के अन्य तरीके:

Last updated