Skip to content
KitploitKITPLOIT
उपकरणएक्सप्लॉइटब्लॉग
Log in
जमा करें
उपकरणएक्सप्लॉइटब्लॉग
जमा करें

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
http-garden — HTTP कार्यान्वयन के लिए विभेदक परीक्षण ढांचा | Kitploit
उपकरण/GitHubGitHub/narfindustries/http-garden
भेद्यता विश्लेषणगतिशील कोड विश्लेषण (DAST)वेब सुरक्षाफज़िंग
GitHubnarfindustries/http-garden

http-garden

HTTP कार्यान्वयन के लिए विभेदक परीक्षण ढांचा

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

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

सभी देखें →

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

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

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

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

The HTTP Garden

The HTTP Garden, HTTP सर्वरों और प्रॉक्सियों का एक संग्रह है, जिन्हें संयोजनीय (composable) बनाने के लिए कॉन्फ़िगर किया गया है। साथ ही, इसमें उनके साथ इंटरैक्ट करने के लिए स्क्रिप्ट भी शामिल हैं, जिससे कमज़ोरियों को खोजना बहुत बहुत आसान हो जाता है। HTTP Garden के साथ खोजी जा सकने वाली कमज़ोरियों के कुछ शानदार डेमो के लिए, हमारी ShmooCon 2024 वार्ता देखें।

Acknowledgements

हम इस प्रोजेक्ट को संभव बनाने के लिए Galois, Trail of Bits, Narf Industries, और Dartmouth College में अपने मित्रों को धन्यवाद देना चाहते हैं।

यह सामग्री रक्षा उन्नत अनुसंधान परियोजना एजेंसी (DARPA) द्वारा अनुबंध संख्या HR0011-19-C-0076 के तहत समर्थित कार्य पर आधारित है।

Getting Started

Dependencies

  1. The HTTP Garden x86_64 और AArch64 Linux पर चलता है, और अन्य प्लेटफ़ॉर्म पर इसका परीक्षण नहीं किया गया है।
  2. लक्ष्य सर्वर Docker कंटेनरों में बनाए और चलाए जाते हैं, इसलिए आपको Docker की आवश्यकता होगी।
  3. आपको Python 3.12+ और निम्नलिखित Python पैकेजों की भी आवश्यकता होगी, जिन्हें आप PyPI (यानी pip के साथ) या अपने सिस्टम पैकेज मैनेजर से प्राप्त कर सकते हैं:
  • docker
    • Docker के साथ इंटरैक्ट करने के लिए
  • pyyaml
    • yaml पार्स करने के लिए
  • tqdm
    • प्रोग्रेस बार के लिए

यदि आप Python पैकेज अपने सिस्टम पैकेज मैनेजर से इंस्टॉल कर रहे हैं, तो ध्यान रखें कि सिस्टम के आधार पर पैकेज नामों के आगे py3-, python3-, या python- उपसर्ग लगाने की आवश्यकता हो सकती है।

Running

  • कुछ सर्वर और प्रॉक्सी बनाएँ और चालू करें:
./garden.sh start --build gunicorn hyper nginx haproxy
  • दूसरे शेल से, repl शुरू करें:
./garden.sh repl
  • HAProxy के माध्यम से एक बुनियादी GET अनुरोध भेजें, फिर परिणाम को Gunicorn, Hyper, और Nginx ओरिजिन सर्वरों को भेजें, और प्रदर्शित करें कि क्या उनकी व्याख्याएँ मेल खाती हैं:
garden> payload 'GET / HTTP/1.1\r\nHOST: a\r\n\r\n' | transduce haproxy | fanout | grid
'GET / HTTP/1.1\r\nHOST: a\r\n\r\n'
⬇️ haproxy
'GET / HTTP/1.1\r\nhost: a\r\n\r\n'
gunicorn: [
    HTTPRequest(
        method=b'GET', uri=b'/', version=b'1.1',
        headers=[
            (b'host', b'a'),
        ],
        body=b'',
    ),
]
hyper: [
    HTTPRequest(
        method=b'GET', uri=b'/', version=b'1.1',
        headers=[
            (b'host', b'a'),
        ],
        body=b'',
    ),
]
nginx: [
    HTTPRequest(
        method=b'GET', uri=b'/', version=b'1.1',
        headers=[
            (b'host', b'a'),
            (b'content-length', b''),
            (b'content-type', b''),
        ],
        body=b'',
    ),
]
         g
         u
         n
         i h n
         c y g
         o p i
         r e n
         n r x
        +-----
gunicorn|✓ ✓ ✓
hyper   |  ✓ ✓
nginx   |    ✓

ऐसा लगता है कि वे सभी सहमत हैं। (ध्यान दें कि भले ही Nginx ने content-length और content-type हेडर जोड़े हों, Garden इस बात से अवगत है और इस महत्वहीन विसंगति को grid आउटपुट में दिखने नहीं देता।)

आइए एक ऐसा payload आज़माएँ जो chunked मैसेज बॉडी में केवल LF लाइन एंडिंग का उपयोग करता है। यह स्पेक में अनुमति नहीं है।

garden> payload 'POST / HTTP/1.1\r\nHost: a\r\nTransfer-Encoding: chunked\r\n\r\n0\n\r\n' | fanout | grid
gunicorn: [
    HTTPResponse(version=b'1.1', method=b'400', reason=b'Bad Request'),
]
hyper: [
]
nginx: [
    HTTPRequest(
        method=b'POST', uri=b'/', version=b'1.1',
        headers=[
            (b'transfer-encoding', b'chunked'),
            (b'host', b'a'),
            (b'content-length', b'0'),
            (b'content-type', b''),
        ],
        body=b'',
    ),
]
         g
         u
         n
         i h n
         c y g
         o p i
         r e n
         n r x
        +-----
gunicorn|✓ ✓ X
hyper   |  ✓ X
nginx   |    ✓

ठीक है, तो Gunicorn ने 400 का जवाब दिया, Hyper ने कोई जवाब नहीं दिया, और Nginx ने अनुरोध स्वीकार कर लिया। यह Nginx के लेखकों द्वारा स्पेक का उल्लंघन है, जिसे वे ठीक करने की परवाह नहीं करते।

आपने शायद यह भी देखा होगा कि भले ही Gunicorn और Hyper का जवाब बिल्कुल एक जैसा नहीं था, फिर भी पहले grid आउटपुट में वे सहमत दिखाई दिए। ऐसा इसलिए है क्योंकि उनकी प्रतिक्रियाएँ मूलतः समतुल्य हैं (संदेश की अस्वीकृति), और Garden इस बात को ध्यान में रखता है।

Directory Layout

images

images निर्देशिका में Garden के प्रत्येक HTTP सर्वर और ट्रांसड्यूसर के लिए एक उपनिर्देशिका होती है। प्रत्येक लक्ष्य को अपनी स्वयं की Docker इमेज मिलती है। जब संभव हो, सभी प्रोग्राम स्रोत कोड से बनाए जाते हैं। ताकि हम प्रत्येक लक्ष्य के कई संस्करण आसानी से बना सकें, सभी लक्ष्यों को एक रिपॉजिटरी URL (APP_REPO), ब्रांच नाम (APP_BRANCH), और कमिट हैश (APP_VERSION) के साथ पैरामीट्रिज़्ड किया जाता है।

tools

tools निर्देशिका में वे स्क्रिप्ट होती हैं जिनका उपयोग सर्वरों के साथ इंटरैक्ट करने के लिए किया जाता है। इसमें आपको मिलेंगे

  • probe_quirks.py: परीक्षण के तहत सिस्टमों में हानिरहित HTTP पार्सिंग क्वर्क्स को सूचीबद्ध करने के लिए एक स्क्रिप्ट, जिन्हें फ़ज़िंग के दौरान अनदेखा किया जाना है,
  • repl.py: HTTP Garden के लिए प्राथमिक उपयोगकर्ता इंटरफ़ेस,
  • update.py: docker-compose.yml में कमिट हैश अपडेट करने के लिए एक स्क्रिप्ट,
  • ...और कुछ और स्क्रिप्ट जो उपयोगकर्ता-उन्मुख नहीं हैं।

Targets

HTTP Servers

|-| | aiohttp | | apache_httpd | | apache_tomcat | | appweb | | aws_c_http | | cpp_httplib | | eclipse_grizzly | | eclipse_jetty | | fasthttp | | go_stdlib | | gunicorn | | h2o | | haproxy_fcgi | | hyper | | hypercorn | | ktor | | libevent | | libmicrohttpd | | libsoup | | lighttpd | | mongoose | | netty | | nginx | | node_stdlib | | openbsd_httpd | | openlitespeed | | openwrt_uhttpd | | protocol_http1 | | puma | | tornado | | twisted | | undertow | | uvicorn | | waitress | | webrick | | yahns |

HTTP Transducers

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