Special HTTP headers

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

hop-by-hop headers

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

  • Content-Length: 30

  • Transfer-Encoding: chunked

HTTP 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 यह भी इंगित करता है कि एक संसाधन कैश किया गया था

Cache 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: सामान्य HTTP हेडर Warning संदेश की स्थिति के साथ संभावित समस्याओं के बारे में जानकारी प्रदान करता है। एक प्रतिक्रिया में एक से अधिक 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

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

  • Server: Apache/2.4.1 (Unix)

  • X-Powered-By: PHP/5.3.3

नियंत्रण

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

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

डाउनलोड

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

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

यह मतलब है कि "filename.jpg" नामक फ़ाइल को डाउनलोड और सहेजने के लिए बनाया गया है।

सुरक्षा हेडर

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

Content Security Policy (CSP) Bypass

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

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

// 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

Cross-Origin Resource Policy (CORP) और Cross-Origin Resource Sharing (CORS)

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

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

Cross-Origin Embedder Policy (COEP) और Cross-Origin Opener Policy (COOP)

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

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

HTTP Strict Transport Security (HSTS)

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

Strict-Transport-Security: max-age=3153600

संदर्भ

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

Last updated