Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

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

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
http-desync-guardian — HTTP अनुरोधों का विश्लेषण करें ताकि HTTP Desync हमलों (HTTP request smuggling/splitting के अग्रदूत) के जोखिम को कम किया जा सके। | Kitploit
उपकरण/GitHubGitHub/aws/http-desync-guardian
स्थैतिक विश्लेषणभेद्यता विश्लेषणएपीआई सुरक्षा परीक्षणवेब सुरक्षा
GitHubaws/http-desync-guardian

http-desync-guardian

HTTP अनुरोधों का विश्लेषण करें ताकि HTTP Desync हमलों (HTTP request smuggling/splitting के अग्रदूत) के जोखिम को कम किया जा सके।

रिपॉजिटरी देखें
274222 महीने पहलेKitploit द्वारा समीक्षित

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

Apache 2 License Crate Clippy/Fmt Tests Coverage Status

अवलोकन

HTTP/1.1 1991 से 2014 तक एक लंबे विकास से गुज़रा:

  • HTTP/0.9 – 1991
  • HTTP/1.0 – 1996
  • HTTP/1.1
    • RFC 2068 – 1997
    • RFC 2616 - 1999
    • RFC 7230 - 2014

इसका मतलब है कि विभिन्न प्रकार के सर्वर और क्लाइंट हैं, जिनके अनुरोध सीमाओं पर अलग-अलग दृष्टिकोण हो सकते हैं, जो डीसिंक्रोनाइज़ेशन हमलों (जिसे HTTP Desync भी कहा जाता है) के अवसर पैदा करते हैं।

नवीनतम RFC अनुशंसाओं का पालन करना सरल लग सकता है। हालांकि, बड़े पैमाने पर सिस्टमों के लिए जो कुछ समय से मौजूद हैं, इसका उपलब्धता पर अस्वीकार्य प्रभाव पड़ सकता है।

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

इसका उपयोग या तो कच्चे HTTP अनुरोध हेडर के लिए या पहले से HTTP इंजन द्वारा पार्स किए गए के लिए किया जा सकता है। उपभोक्ता लॉगिंग और मीट्रिक्स संग्रह को कॉन्फ़िगर कर सकते हैं। लॉगिंग दर-सीमित है और सभी उपयोगकर्ता डेटा अस्पष्ट किया गया है।

यदि आपको लगता है कि आपको कोई सुरक्षा प्रभावित करने वाला मुद्दा मिला है, तो कृपया हमारी सुरक्षा सूचना प्रक्रिया का पालन करें।

प्राथमिकताएँ

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

समर्थित HTTP संस्करण

इस लाइब्रेरी का मुख्य फोकस HTTP/1.1 है। सभी कवर किए गए मामलों के लिए परीक्षण देखें। HTTP/1.1 के पूर्ववर्ती कनेक्शन पुन: उपयोग का समर्थन नहीं करते हैं जो HTTP Desync के अवसरों को सीमित करता है, हालांकि कुछ प्रॉक्सी ऐसे अनुरोधों को HTTP/1.1 में अपग्रेड कर सकते हैं और बैकएंड कनेक्शन का पुन: उपयोग कर सकते हैं, जो दुर्भावनापूर्ण HTTP/1.0 अनुरोधों को तैयार करने की अनुमति दे सकता है। इसलिए उनका विश्लेषण HTTP/1.1 के समान मानदंडों का उपयोग करके किया जाता है। अन्य प्रोटोकॉल संस्करणों के लिए निम्नलिखित अपवाद हैं:

  • HTTP/0.9 अनुरोधों को कभी भी Compliant नहीं माना जाता, बल्कि Acceptable के रूप में वर्गीकृत किया जाता है। यदि Content-Length/Transfer-Encoding में से कोई भी मौजूद है, तो यह Ambiguous है।
  • HTTP/1.0 - Transfer-Encoding की उपस्थिति अनुरोध को Ambiguous बनाती है।
  • HTTP/2+ दायरे से बाहर है। लेकिन यदि आपका प्रॉक्सी HTTP/2 को HTTP/1.1 में डाउनग्रेड करता है, तो सुनिश्चित करें कि आउटगोइंग अनुरोध का विश्लेषण किया गया है।

अधिक जानने के लिए दस्तावेज़ीकरण देखें।

C से उपयोग

यह लाइब्रेरी मुख्य रूप से C/C++ में लिखे HTTP इंजनों से उपयोग करने के लिए डिज़ाइन की गई है।

  1. cbindgen स्थापित करें: cargo install --force cbindgen
  2. हेडर फ़ाइल जनरेट करें:
    • C के लिए cbindgen --output http_desync_guardian.h --lang c चलाएँ।
    • C++ के लिए cbindgen --output http_desync_guardian.h --lang c++ चलाएँ।
  3. cargo build --release चलाएँ। बाइनरी ./target/release/libhttp_desync_guardian.* फाइलों में हैं।

अधिक जानें: सामान्य और Nginx उदाहरण।

root@kitploit:~
#include "http_desync_guardian.h"

/* 
 * http_engine_request_t - already parsed by the HTTP engine 
 */
static int check_request(http_engine_request_t *req) {
    http_desync_guardian_request_t guardian_request = construct_http_desync_guardian_from(req); 
    http_desync_guardian_verdict_t verdict = {0};

    http_desync_guardian_analyze_request(&guardian_request, &verdict);

    switch (verdict.tier) {
        case REQUEST_SAFETY_TIER_COMPLIANT:
            // The request is good. green light
            break;
        case REQUEST_SAFETY_TIER_ACCEPTABLE:
            // Reject, if mode == STRICTEST
            // Otherwise, OK
            break;
        case REQUEST_SAFETY_TIER_AMBIGUOUS:
            // The request is ambiguous.
            // Reject, if mode == STRICTEST 
            // Otherwise send it, but don't reuse both FE/BE connections.
            break;
        case REQUEST_SAFETY_TIER_SEVERE:
            // Send 400 and close the FE connection.
            break;
        default:
            // unreachable code
            abort();
    }
}

Rust से उपयोग

Rust से उपयोग के उदाहरण के रूप में बेंचमार्क देखें।

सुरक्षा समस्या सूचनाएं

यदि आप http_desync_guardian में एक संभावित सुरक्षा मुद्दे की खोज करते हैं, तो हम आपसे अनुरोध करते हैं कि आप AWS सुरक्षा को हमारे भेद्यता रिपोर्टिंग पृष्ठ के माध्यम से सूचित करें। कृपया सार्वजनिक github मुद्दा न बनाएं।

सुरक्षा

अधिक जानकारी के लिए CONTRIBUTING देखें।

लाइसेंस

यह परियोजना Apache-2.0 License के तहत लाइसेंस प्राप्त है।

टूल डाउनलोड करें