30 KiB
विशेष HTTP हेडर
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
- क्या आप साइबर सुरक्षा कंपनी में काम करते हैं? क्या आप अपनी कंपनी को HackTricks में विज्ञापित देखना चाहते हैं? या क्या आपको PEASS की नवीनतम संस्करण या HackTricks को PDF में डाउनलोड करने का उपयोग करने की आवश्यकता है? सदस्यता योजनाएं की जांच करें!
- The PEASS Family की खोज करें, हमारा विशेष संग्रह NFTs
- आधिकारिक PEASS & HackTricks swag प्राप्त करें
- 💬 Discord समूह या टेलीग्राम समूह में शामिल हों या मुझे Twitter पर फ़ॉलो करें 🐦@carlospolopm.
- अपने हैकिंग ट्रिक्स को hacktricks रेपो और hacktricks-cloud रेपो में PR जमा करके साझा करें।
शब्द-सूचियाँ और उपकरण
- https://github.com/danielmiessler/SecLists/tree/master/Miscellaneous/web/http-request-headers
- https://github.com/rfc-st/humble
स्थान बदलने के लिए हेडर
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 का SHA1ETag: 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, '<').replace(/>/g, '>');
}
});
}
// 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; // '<img src=x onerror=alert(1)>'
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 🎥
- क्या आप साइबर सुरक्षा कंपनी में काम करते हैं? क्या आप अपनी कंपनी को HackTricks में विज्ञापित देखना चाहते हैं? या क्या आपको PEASS के नवीनतम संस्करण या HackTricks को PDF में डाउनलोड करने का उपयोग करना चाहिए? सदस्यता योजनाएं की जांच करें!
- खोजें The PEASS Family, हमारा विशेष NFT संग्रह
- प्राप्त करें आधिकारिक PEASS & HackTricks swag
- शामिल हों 💬 Discord समूह या टेलीग्राम समूह में या मुझे Twitter पर फ़ॉलो करें 🐦@carlospolopm.
- अपने हैकिंग ट्रिक्स को hacktricks रेपो और hacktricks-cloud रेपो में पीआर जमा करके अपना योगदान दें।