hacktricks/network-services-pentesting/pentesting-web/special-http-headers.md
Translator workflow 75e8745ba3 Translated to Hindi
2023-11-06 08:38:02 +00:00

30 KiB

विशेष HTTP हेडर

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥

शब्द-सूचियाँ और उपकरण

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

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
  • X-ProxyUser-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

{% content-ref url="../../pentesting-web/abusing-hop-by-hop-headers.md" %} abusing-hop-by-hop-headers.md {% endcontent-ref %}

HTTP अनुरोध अपराध

  • Content-Length: 30
  • Transfer-Encoding: chunked

{% content-ref url="../../pentesting-web/http-request-smuggling/" %} http-request-smuggling {% endcontent-ref %}

कैश हेडर्स

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

  • प्रतिक्रिया में X-Cache में मान हो सकता है miss जब अनुरोध कैश नहीं किया गया था और hit जब यह कैश किया गया है
  • Cache-Control यह दर्शाता है कि क्या एक संसाधन कैश हो रहा है और अगली बार संसाधन कैश होगा: Cache-Control: public, max-age=1800
  • Vary उत्तर में आमतौर पर उपयोग होता है अतिरिक्त हेडर्स की घोषणा करने के लिए जो सामान्य रूप से अनुकंठित होते हैं।
  • Age प्रॉक्सी कैश में वस्तु के सेकंड में समय को परिभाषित करता है।
  • Server-Timing: cdn-cache; desc=HIT यह भी दर्शाता है कि एक संसाधन कैश किया गया था

{% content-ref url="../../pentesting-web/cache-deception.md" %} cache-deception.md {% endcontent-ref %}

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

  • 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 है।

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

  • Server: Apache/2.4.1 (Unix)
  • X-Powered-By: PHP/5.3.3

नियंत्रण

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

डाउनलोड

  • Content-Disposition: एक साधारित HTTP प्रतिक्रिया में, Content-Disposition प्रतिक्रिया हेडर एक हेडर होता है जो दिखाता है कि सामग्री को ब्राउज़र में इनलाइन रूप में प्रदर्शित किया जाना उम्मीद है, अर्थात एक वेब पृष्ठ के रूप में या एक वेब पृष्ठ का हिस्सा के रूप में, या अटैचमेंट के रूप में, जो डाउनलोड किया जाता है और स्थानीय रूप में सहेजा जाता है।
  • Content-Disposition: attachment; filename="filename.jpg"

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

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

{% content-ref url="../../pentesting-web/content-security-policy-csp-bypass/" %} content-security-policy-csp-bypass {% endcontent-ref %}

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

विश्वसनीय प्रकार DOM XSS से मुक्त एप्लिकेशन लिखने, सुरक्षा समीक्षा करने और रखरखाव करने के लिए उपकरण प्रदान करते हैं। इन्हें CSP के माध्यम से सक्षम किया जा सकता है और जावास्क्रिप्ट कोड क

Content-Security-Policy: require-trusted-types-for 'script'
// Feature detection
if (window.trustedTypes && trustedTypes.createPolicy) {
// Name and create a policy
const policy = trustedTypes.createPolicy('escapePolicy', {
createHTML: str => {
return str.replace(/\</g, '&lt;').replace(/>/g, '&gt;');
}
});
}
// Assignment of raw strings is blocked by Trusted Types.
el.innerHTML = 'some string'; // This throws an exception.

// Assignment of Trusted Types is accepted safely.
const escaped = policy.createHTML('<img src=x onerror=alert(1)>');
el.innerHTML = escaped;  // '&lt;img src=x onerror=alert(1)&gt;'

X-Content-Type-Options

जब आपके डोमेन से एक दुष्ट HTML दस्तावेज़ सर्व किया जाता है (उदाहरण के लिए, यदि एक फ़ोटो सेवा में अपलोड की गई छवि में मान्य HTML मार्कअप होता है), तो कुछ ब्राउज़र इसे एक सक्रिय दस्तावेज़ के रूप में देखेंगे और इसे एप्लिकेशन के संदर्भ में स्क्रिप्ट्स को क्रियान्वित करने की अनुमति देंगे, जिससे क्रॉस-साइट स्क्रिप्टिंग बग हो सकता है।

X-Content-Type-Options: nosniff इसे रोकता है जब ब्राउज़र को बताता है कि दिए गए प्रतिक्रिया के लिए Content-Type हैडर में सेट किए गए MIME प्रकार सही है। यह हैडर आपके सभी संसाधनों के लिए सिफारिश किया जाता है।

X-Content-Type-Options: nosniff

X-Frame-Options

यदि एक खतरनाक वेबसाइट आपकी साइट को एक iframe के रूप में एम्बेड कर सकती है, तो यह हमलावरों को क्लिकजैकिंग के माध्यम से उपयोगकर्ता द्वारा अनचाहे कार्रवाई को आमंत्रित करने की अनुमति देता है। इसके अलावा, कुछ मामलों में स्पेक्ट्रे-प्रकार के हमलों के द्वारा खतरनाक वेबसाइटों को एक एम्बेडेड दस्तावेज़ की सामग्री के बारे में जानने का मौका मिलता है।

X-Frame-Options यह दर्शाता है कि क्या एक ब्राउज़र को एक पेज को <frame>, <iframe>, <embed>, या <object> में रेंडर करने की अनुमति देनी चाहिए या नहीं। सभी दस्तावेज़ को इस हैडर को भेजने की सिफारिश की जाती है ताकि वे दूसरे दस्तावेज़ों द्वारा एम्बेड होने की अनुमति दें।

यदि आपको केवल एक विशिष्ट मूल को दस्तावेज़ को एम्बेड करने की अनुमति देने जैसा अधिक विस्तृत नियंत्रण चाहिए है, तो CSP frame-ancestors निर्देशिका का उपयोग करें।

X-Frame-Options: DENY

Cross-Origin Resource Policy (CORP)

एक हमलावर एक अन्य मूल से संसाधनों को समारोह में सम्मिलित कर सकता है, उदाहरण के लिए आपकी साइट से, वेब-आधारित क्रॉस-साइट लीक का उपयोग करके उनके बारे में जानकारी प्राप्त करने के लिए।

Cross-Origin-Resource-Policy इस जोखिम को कम करता है जहां यह इंदिकेट करता है कि वेबसाइटों के सेट द्वारा यह लोड किया जा सकता है। हेडर तीन मानों में से एक लेता है: same-origin, same-site, और cross-originसभी संसाधनों को यह हेडर भेजने की सिफारिश की जाती है ताकि वे इंदिकेट कर सकें कि क्या वे अन्य वेबसाइटों द्वारा लोड होने की अनुमति देते हैं।

Cross-Origin-Resource-Policy: same-origin

क्रॉस-ओरिजिन रिसोर्स नीति (CORB)

यह साइड-चैनल हमलों (स्पेक्ट्रे सहित) के खतरे को कम करने में मदद करता है। यह वेब पृष्ठ को ऐसे कुछ क्रॉस-ओरिजिन नेटवर्क प्रतिक्रियाओं को डिलीवर करने से रोकने के लिए डिज़ाइन किया गया है, जब वे संवेदनशील जानकारी समेत हो सकती हैं और मौजूदा वेब सुविधाओं के लिए आवश्यक नहीं होती हैं।
इसी तरह, यह क्रॉस-साइट स्क्रिप्ट इनक्लूज़न (XSSI) सुरक्षा दुर्बलताओं को कम करने में भी मदद करता है।
उदाहरण के लिए, यह एक क्रॉस-ओरिजिन text/html प्रतिक्रिया को ब्लॉक करेगा जो <script> या <img> टैग से अनुरोधित होती है, और इसे खाली प्रतिक्रिया से बदल देगा। यह साइट आइसोलेशन के साथ शामिल सुरक्षा के महत्वपूर्ण हिस्से है।

क्रॉस-ओरिजिन ओपनर नीति (COOP)

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

Cross-Origin-Opener-Policy हैडर एक तरीका प्रदान करता है जिससे एक दस्तावेज़ को window.open() या target="_blank" के साथ खोले गए क्रॉस-ओरिजिन विंडों से अलग करने का। इसके परिणामस्वरूप, दस्तावेज़ का कोई भी क्रॉस-ओरिजिन ओपनर उससे संदर्भ नहीं रखेगा और उसके साथ संवाद करने में सक्षम नहीं होगा।

Cross-Origin-Opener-Policy: same-origin-allow-popups

Cross-Origin Resource Sharing (CORS)

इस लेख में अन्य विषयों की तुलना में, क्रॉस-ओरिजिन रिसोर्स शेयरिंग (CORS) एक हेडर नहीं है, बल्कि यह ब्राउज़र मेकेनिज़्म है जो क्रॉस-ओरिजिन संसाधनों के लिए एक्सेस का अनुरोध करता है और अनुमति देता है।

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

Access-Control-Allow-Origin: https://example.com
Access-Control-Allow-Credentials: true

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

Spectre-आधारित हमलों की क्षमता को कम करने के लिए, डिफ़ॉल्ट रूप से SharedArrayBuffer या performance.measureUserAgentSpecificMemory() जैसी विशेषताएँ अक्षम होती हैं।

Cross-Origin-Embedder-Policy: require-corp दस्तावेज़ और कर्मचारियों को अन्य-मूल संसाधनों को लोड करने से रोकता है, जैसे कि छवियाँ, स्क्रिप्ट, स्टाइलशीट, आइफ्रेम और अन्य, जब तक ये संसाधन स्पष्ट रूप से CORS या CORP हैडर के माध्यम से लोड होने के लिए विकल्प नहीं चुनते हैं। COEP को Cross-Origin-Opener-Policy के साथ कॉम्बाइन किया जा सकता है ताकि एक दस्तावेज़ को क्रॉस-ओरिजिन अलगाव में चुना जा सके।

अपने दस्तावेज़ के लिए क्रॉस-ओरिजिन अलगाव सक्षम करना चाहें तो Cross-Origin-Embedder-Policy: require-corp का उपयोग करें।

Cross-Origin-Embedder-Policy: require-corp

HTTP Strict Transport Security (HSTS)

सादा HTTP कनेक्शन के माध्यम से कम्यूनिकेशन एन्क्रिप्ट नहीं होता है, जिससे नेटवर्क स्तर पर इस्तेमाल होने वाले डेटा को एवेसड्रॉपर्स तक पहुंच मिलती है।

Strict-Transport-Security हेडर ब्राउज़र को सूचित करता है कि यह साइट कभी भी HTTP का उपयोग न करके HTTPS का उपयोग करें। एक बार जब यह सेट हो जाता है, तो ब्राउज़र हेडर में परिभाषित अवधि के लिए रीडायरेक्ट के बिना डोमेन तक पहुंचने के लिए HTTP की बजाय HTTPS का उपयोग करेगा।

Strict-Transport-Security: max-age=3153600

संसाधन

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥