hacktricks/pentesting-web/h2c-smuggling.md
Translator workflow 75e8745ba3 Translated to Hindi
2023-11-06 08:38:02 +00:00

16 KiB

शीर्षक अपग्रेड स्मगलिंग

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

विशेषता को खोजें जो सबसे महत्वपूर्ण हैं ताकि आप उन्हें तेजी से ठीक कर सकें। Intruder आपकी हमला सतह का ट्रैक करता है, प्रोएक्टिव धमकी स्कैन चलाता है, आपकी पूरी टेक स्टैक, API से वेब ऐप्स और क्लाउड सिस्टम तक, मुद्दों को खोजता है। इसे मुफ़्त में प्रयास करें आज।

{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}


H2C स्मगलिंग

क्लियरटेक्स्ट पर HTTP2 (H2C)

सामान्यतः एक साधारण HTTP कनेक्शन केवल एक अनुरोध की अवधि के लिए होता है। हालांकि, H2C या "क्लियरटेक्स्ट पर http2" ऐसा है जहां एक साधारण अस्थायी http कनेक्शन को स्थायी कनेक्शन में अपग्रेड किया जाता है जो http2 बाइनरी प्रोटोकॉल का उपयोग करके सतत संचार करने के लिए इस्तेमाल होता है बजाय प्लेनटेक्स्ट http प्रोटोकॉल का।

स्मगलिंग का दूसरा हिस्सा जब एक रिवर्स प्रॉक्सी का उपयोग किया जाता है। सामान्यतः, जब एक http अनुरोध रिवर्स प्रॉक्सी को किया जाता है, तो प्रॉक्सी अनुरोध को हैंडल करेगा, एक श्रृंखला के नियमों को प्रोसेस करेगा, फिर अनुरोध को बैकएंड पर फ़ॉरवर्ड करेगा और फिर प्रतिक्रिया लौटाएगा। जब एक http अनुरोध में Connection: Upgrade हैडर शामिल होता है, जैसे वेबसॉकेट कनेक्शन के लिए, तो रिवर्स प्रॉक्सी ग्राहक और सर्वर के बीच स्थायी कनेक्शन बनाए रखेगा, जो इन प्रोटोकॉल के लिए आवश्यक सतत संचार को संभव बनाता है। H2C कनेक्शन के लिए, RFC में यह आवश्यकता है कि 3 हेडर्स मौजूद हों:

Upgrade: h2c
HTTP2-Settings: AAMAAABkAARAAAAAAAIAAAAA
Connection: Upgrade, HTTP2-Settings

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

विकल्पशील प्रॉक्सी

यह विकल्पशीलता की व्याख्या से ध्यान दें कि प्रॉक्सी सर्वर को अपग्रेड हेडर को आगे भेजना चाहिए, और कभी-कभी कनेक्शन हेडर को भी सफलतापूर्वक आगे भेजना चाहिए।

डिफ़ॉल्ट रूप से, निम्नलिखित सेवाएं अपग्रेड और कनेक्शन हेडर को प्रॉक्सी-पास के दौरान आगे भेजती हैं, जिससे h2c स्मगलिंग को आउट-ऑफ-द-बॉक्स सक्षम कर दिया जाता है।:

  • HAProxy
  • Traefik
  • Nuster

डिफ़ॉल्ट रूप से, ये सेवाएं दोनों अपग्रेड और कनेक्शन हेडर को प्रॉक्सी-पास के दौरान आगे नहीं भेजती हैं, लेकिन असुरक्षित तरीके से कॉन्फ़िगर किया जा सकता है (अवरोधित अपग्रेड और कनेक्शन हेडर पास करके):

  • AWS ALB/CLB
  • NGINX
  • Apache
  • Squid
  • Varnish
  • Kong
  • Envoy
  • Apache Traffic Server

शोषण

मूल ब्लॉग पोस्ट में यह बताया गया है कि सभी सर्वर आवश्यक हेडर्स को आगे भेजेंगे नहीं एक अनुरूप H2C कनेक्शन अपग्रेड के लिए। इसका मतलब है कि AWS ALB/CLB, NGINX और Apache Traffic Server जैसे लोड बैलेंसर्स डिफ़ॉल्ट रूप से H2C कनेक्शन को रोकेंगे। हालांकि, ब्लॉग पोस्ट के अंत में, उसने उल्लेख किया है कि "सभी बैकएंड अनुरूप नहीं थे, और हम गैर-अनुरूप कनेक्शन: अपग्रेड वेरिएंट के साथ टेस्ट कर सकते थे, जहां HTTP2-सेटिंग्स मान कनेक्शन हेडर से छोड़ दिया जाता है।"

{% hint style="danger" %} ध्यान दें कि यदि proxy_pass URL (प्रॉक्सी कनेक्शन को आगे भेजने वाला अंतिम बिंदु) किसी विशेष पथ की ओर पोइंट कर रहा हो, जैसे http://backend:9999/socket.io, तो कनेक्शन http://backend:9999 के साथ स्थापित हो जाएगा, इसलिए आप इस तकनीक का दुरुपयोग करके उस आंतरिक अंतर्निहित बिंदु के भीतर किसी अन्य पथ से संपर्क कर सकते हैं। इसलिए प्रॉक्सी_पास के URL में पथ निर्दिष्ट किया जाता हो या न हो, इसका कोई महत्व नहीं है। {% endhint %}

उपकरणों https://github.com/BishopFox/h2csmuggler और https://github.com/assetnote/h2csmuggler का उपयोग करके आप प्रॉक्सी द्वारा लगाए गए प्रतिबंधों को छलना करने का प्रयास कर सकते हैं, एक H2C कनेक्शन स्थापित करके और सुरक्षित संरक्षित संसाधनों तक पहुंच सकते हैं।

Nginx में इस विकल्पशीलता के बारे में अधिक जानकारी के लिए इस लिंक पर क्लिक करें.

वेबसॉकेट स्मगलिंग

पिछली तकनीक की तरह, इस तकनीक में एक HTTP2 टनल नहीं बनाया जाता है, जो प्रॉक्सी के माध्यम से पहुंचने योग्य एक अंतर्निहित बिंदु के लिए बनाया जाता है, बल्कि यह एक वेबसॉकेट टनल बनाता है, जिसका उद्देश्य भी वही है, प्रॉक्सी की सीमाओं को छलना करना और सीधे बिंदु के साथ बातचीत क

लैब्स

https://github.com/0ang3el/websocket-smuggle.git में दोनों स्थितियों को परीक्षण करने के लिए लैब्स की जांच करें।

संदर्भ

विशेषता जो महत्वपूर्ण हैं उन दुर्बलताओं को खोजें ताकि आप उन्हें तेजी से ठीक कर सकें। Intruder आपकी हमला प्रविष्टि को ट्रैक करता है, प्रोएक्टिव धमकी स्कैन चलाता है, आपकी पूरी टेक स्टैक, एपीआई से वेब ऐप्स और क्लाउड सिस्टम तक, में समस्याओं को खोजता है। इसे मुफ्त में प्रयास करें आज।

{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}

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