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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
ftw — WAFs के परीक्षण हेतु फ्रेमवर्क (FTW!) | Kitploit
उपकरण/GitHubGitHub/fastly/ftw
भेद्यता स्कैनरWAF बाईपासवेब सुरक्षापेनिट्रेशन टेस्टिंगDevSecOpsArchived
GitHubfastly/ftw

ftw

WAFs के परीक्षण हेतु फ्रेमवर्क (FTW!)

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

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

सभी देखें →

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

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

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

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

WAFs के परीक्षण के लिए ढाँचा (FTW)

Build Status

उद्देश्य

यह परियोजना ModSecurity और Fastly के शोधकर्ताओं द्वारा WAF नियमों के लिए कठोर परीक्षण प्रदान करने में मदद के लिए बनाई गई थी। यह WAF पर नियमों का परीक्षण करने के लिए आधार रेखा के रूप में OWASP Core Ruleset V3 का उपयोग करता है। नियम सेट के प्रत्येक नियम को एक YAML फ़ाइल में लोड किया जाता है जो इन नियमों को ट्रिगर करने वाले HTTP अनुरोध जारी करता है।

लक्ष्य / उपयोग मामले शामिल हैं:

  • निरंतर एकीकरण का उपयोग करके और WAF को दोहराए जाने वाले हमलों को जारी करके WAF परिनियोजन में प्रतिगमन खोजें
  • ModSecurity में नए नियमों के लिए एक परीक्षण ढाँचा प्रदान करें, यदि कोई नियम प्रस्तुत किया जाता है तो उसके पास संबंधित सकारात्मक और नकारात्मक परीक्षण होने चाहिए
  • एक सामान्य, सहमत आधार रेखा नियम सेट (OWASP) के विरुद्ध WAF का मूल्यांकन करें
  • कोर नियम सेट का हिस्सा नहीं होने वाले WAF के लिए कस्टम नियमों का परीक्षण और सत्यापन करें

स्थापना

  • git clone [email protected]:fastly/ftw.git
  • cd ftw
  • Make sure that pip is installed apt-get install python-pip``
  • pip install -r requirements.txt

केवल HTML contains और Status code जाँच के साथ परीक्षण चलाना

  • YAML फ़ाइलें बनाएं जो आपके वेबसर्वर की ओर इशारा करती हैं जिसके सामने एक WAF है
  • py.test test/test_default.py --ruledir test/yaml

Apache+Modsecurity+OWASP CRS की प्रावधान

यदि आपको WAF नियमों के परीक्षण के लिए एक वातावरण की आवश्यकता है, तो Apache, Modsecurity और OWASP कोर नियम सेट के संस्करण 3.0.0 के साथ एक बनाया गया है। इसे निम्न द्वारा तैनात किया जा सकता है:

  • `Checking out the repository: ``git clone https://github.com/fastly/waf_testbed.git```
  • `Typing vagrant up

YAML फ़ाइलों में गंतव्य पते को कस्टम डोमेन में ओवरराइड करते हुए परीक्षण चलाना

  • अपना परीक्षण वेब सर्वर प्रारंभ करें
  • py.test test/test_default.py --ruledir=test/yaml --destaddr=domain.com --port 443 --protocol https

एकीकरण परीक्षण चलाएं, स्थानीय वेबसर्वर, sudo का उपयोग करना पड़ सकता है

  • py.test test/integration/test_logcontains.py -s --ruledir=test/integration/

लॉग्स को कैसे एकीकृत करें

  1. आवश्यक आयात के साथ एक *.py फ़ाइल बनाएं, एक उदाहरण test/integration/test_logcontains.py में दिखाया गया है
  2. शुरुआत में test* वाले सभी फ़ंक्शन py.test द्वारा चलाए जाएंगे, इसलिए एक फ़ंक्शन def test_somewaf बनाएं
  3. एक क्लास लागू करें जो LogChecker से विरासत में मिलता है
    1. get_logs() फ़ंक्शन लागू करें। FTW परीक्षण चलाने के बाद इस फ़ंक्शन को कॉल करेगा, और यह self.start और self.end के डेटटाइम सेट करेगा
    2. डेटटाइम वेरिएबल से जानकारी का उपयोग करके अपने WAF से फ़ाइलें प्राप्त करें, चाहे वह फ़ाइल हो या API कॉल
    3. लॉग प्राप्त करें, उन्हें स्ट्रिंग की एक सरणी में संग्रहीत करें और get_logs() से लौटाएं
  4. py.test fixtures का उपयोग करें। एक फंक्शन डेकोरेटर @pytest.fixture का उपयोग करें, अपना नया ऑब्जेक्ट लौटाएं। जब भी आप अपने परीक्षणों में एक फंक्शन आर्गुमेंट का उपयोग करते हैं जो उस के नाम से मेल खाता है, तो यह आपके ऑब्जेक्ट को इंस्टेंटिएट करेगा और परीक्षण चलाना आसान बनाएगा। इसका एक उदाहरण चरण 1 की पायथन फ़ाइल में है।

प्रोग्रामेटिक रूप से HTTP अनुरोध करना

हालांकि YAML प्रारूप का उपयोग करके अनुरोध करना पसंद किया जाता है, अक्सर स्वचालित परीक्षणों में कई गतिशील अनुरोध करने की आवश्यकता होती है। ऐसे मामले में संपूर्ण के हिस्से के रूप में चलाए जा सकने वाले परीक्षण मामलों का उत्पादन करने के लिए py.test ढाँचे का उपयोग करने की अनुशंसा की जाती है। सामान्यतः HTTP अनुरोध करना सरल है:

  1. HttpUA() क्लास का एक इंस्टेंस बनाएं
  2. Input() क्लास का एक इंस्टेंस बनाएं जो उन पैरामीटरों को प्रदान करता है जिन्हें आप डिफ़ॉल्ट नहीं करना चाहते हैं
  3. इनपुट क्लास का इंस्टेंस HttpUA.send_request() को प्रदान करें

कुछ उदाहरणों के लिए http एकीकरण परीक्षण देखें

टूल डाउनलोड करें
LogChecker
@pytest.fixture
  • *.yaml प्रारूप में एक परीक्षण कॉन्फ़िगरेशन लिखें जैसा कि test/integration/LOGCONTAINSFIXTURE.yaml में देखा गया है, log_contains पंक्ति में एक स्ट्रिंग की आवश्यकता होती है जो एक regex है। FTW YAML फ़ाइल में प्रत्येक चरण से log_contains स्ट्रिंग को एक regex में संकलित करेगा। फिर इस regex का उपयोग get_logs() से पारित लॉग की पंक्तियों के साथ मिलान खोजने के लिए किया जाएगा। log_contains स्ट्रिंग, तब, एक अद्वितीय नियम-आईडी होनी चाहिए क्योंकि FTW लालची है और पहले मैच पर आगे बढ़ेगा। LogChecker ऑब्जेक्ट को पारित शुरू/अंत समय से झूठी सकारात्मकता को कम किया जाता है, लेकिन सुरक्षित रहने और अद्वितीय regex का उपयोग करना सबसे अच्छा है।
  • प्रत्येक चरण के लिए, get_logs() फ़ंक्शन को कॉल किया जाता है, इसलिए यदि आप इस तरह से अपने लॉग प्राप्त करते हैं तो API कॉल के लिए खाता बनाना सुनिश्चित करें।