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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
WuppieFuzz — LibAFL के ऊपर विकसित एक कवरेज-निर्देशित REST API फ़ज़र | Kitploit
उपकरण/GitHubGitHub/tno-s3/wuppiefuzz
भेद्यता विश्लेषणएपीआई सुरक्षा परीक्षणवेब सुरक्षाफज़िंगपेनिट्रेशन टेस्टिंगAPI सुरक्षा
GitHubtno-s3/wuppiefuzz

WuppieFuzz

LibAFL के ऊपर विकसित एक कवरेज-निर्देशित REST API फ़ज़र

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

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

सभी देखें →

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

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

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

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

WuppieFuzz v1.6.0

WuppieFuzz का लोगो।

TNO ने WuppieFuzz विकसित किया है, जो LibAFL के ऊपर विकसित एक कवरेज-निर्देशित REST API फ़ज़र है, जो अंतिम उपयोगकर्ताओं की व्यापक श्रेणी को लक्षित करता है, जिसमें उपयोग में आसानी, खोजी गई खामियों की व्याख्यात्मकता और मॉड्यूलरिटी पर मजबूत जोर दिया गया है। WuppieFuzz परीक्षण की तीनों स्थितियों (ब्लैक बॉक्स, ग्रे बॉक्स और व्हाइट बॉक्स) का समर्थन करता है।

[!NOTE]
त्वरित, साथ चलने वाले मार्गदर्शन के लिए कृपया ट्यूटोरियल देखें!

मीडिया कवरेज

WuppieFuzz इनमें प्रदर्शित किया गया है:

  • The ONE Conference e-magazine 2024
  • Test your APIs easily with TNO's new REST API fuzzer
  • OpenAPI.tools listing: WuppieFuzz
  • Automated REST API Vulnerability Detection with WuppieFuzz (Nordic APIs on YouTube)
  • Thoughtworks Technology Radar: WuppieFuzz

वैज्ञानिक प्रकाशन

यदि आप शैक्षणिक कार्य में WuppieFuzz का उल्लेख करना चाहते हैं, तो कृपया CITATION.cff में सूचीबद्ध पसंदीदा प्रकाशन का उपयोग करें:

Rooijakkers, T., Nijsten, A., Daniele, C., Weitenberg, E., Groenewegen, R., & Melissen, A. (2026). WuppieFuzz: Coverage-Guided, Stateful REST API Fuzzing. In Proceedings of the 12th International Conference on Information Systems Security and Privacy (ICISSP), Volume 2, 221-231. SciTePress. https://doi.org/10.5220/0000217100004061

लाइसेंस

WuppieFuzz Apache-2.0 के अंतर्गत लाइसेंस प्राप्त है; LICENSE देखें।
तृतीय-पक्ष लाइसेंस सूचनाएँ THIRD_PARTY_NOTICES में सूचीबद्ध हैं।

त्वरित स्थापना

लोकप्रिय ऑपरेटिंग सिस्टम (MacOS, Windows, Linux) के लिए WuppieFuzz की त्वरित स्थापना हेतु रिलीज़ देखें या brew install wuppiefuzz का उपयोग करें।

संक्षिप्त उपयोग-निर्देश

WuppieFuzz का उपयोग कैसे करें? - YouTube

विकास के लिए पूर्वापेक्षाएँ

प्रोजेक्ट बनाने के लिए आपको निम्नलिखित निर्भरताएँ और टूलिंग स्थापित करनी होंगी

  • build-essential sudo apt install build-essential
  • pkg-config sudo apt install pkg-config
  • Rust curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

चलाएँ

WuppieFuzz कार्य करते हुए।

WuppieFuzz चलाने से पहले, आपको अपना (इंस्ट्रूमेंटेड) लक्ष्य अनुप्रयोग प्रारंभ करना होगा।

इसके अतिरिक्त, आपको WuppieFuzz को एक OpenAPI-विनिर्देश प्रदान करना होगा ताकि वह जान सके कि अपने अनुरोधों को कैसे उत्पन्न और परिवर्तित करना है। कमांड लाइन तर्कों के लिए सहायता हेतु, निम्नलिखित का उपयोग करें:

root@kitploit:~
$ cargo run -- --help # shows help for required parameters and flags

Usage: wuppiefuzz [OPTIONS] [OPENAPI_SPEC.YAML]
...

उदाहरण के लिए, JaCoCo एजेंट संलग्न किसी Java लक्ष्य के विरुद्ध WuppieFuzz चलाने के लिए, आप उसकी OpenAPI फ़ाइल निर्दिष्ट करते हैं (जिसमें API विनिर्देश में लक्ष्य जिस URL पर चल रहा है वह शामिल होता है)। इसके अतिरिक्त, आप निर्दिष्ट करते हैं कि कवरेज प्रारूप JaCoCo है, और क्लासेस निर्देशिका इस प्रकार देते हैं:

root@kitploit:~
cargo run -- fuzz openapi.yaml --coverage-format jacoco --jacoco-class-dir ../Targets/app/target/classes/

कॉन्फ़िगरेशन फ़ाइल

यदि आप कमांड लाइन तर्कों के बजाय/साथ में कॉन्फ़िगरेशन फ़ाइल का उपयोग करना चाहते हैं, तो आप --config <CONFIG_FILE> फ़्लैग का उपयोग कर सकते हैं। यदि आप कॉन्फ़िगरेशन फ़ाइल के साथ कमांड लाइन तर्कों का उपयोग करते हैं, तो कमांड लाइन तर्कों को प्राथमिकता दी जाती है।

कॉन्फ़िगरेशन फ़ाइल एक yaml फ़ाइल होनी चाहिए और इसमें प्रत्येक कमांड लाइन तर्क के लिए एक पंक्ति होनी चाहिए जिसे आप निर्दिष्ट करना चाहते हैं, उदाहरण के लिए:

root@kitploit:~
coverage_format: jacoco
output_format: human-readable
source_dir: "/swagger-petstore/src/main/java"
jacoco_class_dir: "/swagger-petstore/target"
timeout: 20

इस स्थिति में एक उदाहरण रन कमांड हो सकता है:

root@kitploit:~
$ cargo run -- fuzz --config=config.yaml --report --coverage-host=localhost:6300 --timeout=10 ./openapi.yaml

यह पंक्ति कमांड लाइन और कॉन्फ़िगरेशन फ़ाइल के तर्कों को संयोजित करेगी। चूँकि --timeout फ़्लैग दोनों में निर्दिष्ट है, कमांड लाइन में निर्दिष्ट टाइमआउट (10 सेकंड) को प्राथमिकता दी जाएगी।

example_configs/ निर्देशिका में आपको दो उदाहरण कॉन्फ़िग फ़ाइलें मिलेंगी, जिनका उपयोग Java कोड के लिए JaCoCo के साथ कवरेज रिपोर्ट उत्पन्न करने और Python कोड के लिए LCOV के साथ कवरेज रिपोर्ट उत्पन्न करने हेतु किया जा सकता है।

रिपोर्ट

जब आप WuppieFuzz को --report फ़्लैग के साथ चलाते हैं, तो reports/ के अंदर एक उपनिर्देशिका बनाई जाती है जिसका नाम टाइमस्टैम्प होता है। सभी समर्थित कवरेज रिपोर्ट(ें) इस उपनिर्देशिका में लिखी जाती हैं। कवरेज रिपोर्ट दो प्रकार की होती हैं:

  1. एंडपॉइंट कवरेज: इसे हमेशा उत्पन्न किया जा सकता है क्योंकि इसके लिए केवल OpenAPI-विनिर्देश की आवश्यकता होती है।
  2. कोड कवरेज: वर्तमान में केवल JaCoCo के लिए समर्थित है, लेकिन हम और अधिक समर्थन करने का लक्ष्य रखते हैं। मुश्किल हिस्सा यह है कि इसके लिए कवरेज से स्रोत फ़ाइलों तक मैपिंग की आवश्यकता होती है, और इसका उपयोग करने वाली मजबूत रिपोर्ट निर्माण।

इसके अलावा, आपके फ़ज़िंग अभियान से संबंधित सभी अनुरोध जानकारी से एक डेटाबेस भरा जाता है। इस डेटाबेस को Grafana डैशबोर्ड के माध्यम से विज़ुअलाइज़ और एक्सप्लोर किया जा सकता है।

इस रिपॉज़िटरी की संरचना

  • assets: लोगो, चित्र, आदि।
  • coverage_agents: विभिन्न लक्ष्यों पर लगाने के लिए कवरेज ट्रैकिंग हेतु कोड और निर्देश।
  • example_configs: WuppieFuzz कॉन्फ़िगर करने हेतु उदाहरण कॉन्फ़िगरेशन फ़ाइलें।
  • src: WuppieFuzz का स्रोत कोड।
  • tutorial: किसी विशिष्ट लक्ष्य को फ़ज़ करने और फ़ज़िंग परिणामों की व्याख्या करने के तरीके पर एक गहन और निम्न-स्तरीय ट्यूटोरियल।
  • dashboard: फ़ज़िंग परिणामों और प्रदर्शन को ट्राइएज करने की टूलिंग।

इनमें से प्रत्येक के बारे में अधिक जानकारी के लिए, इन निर्देशिकाओं में README देखें।

विकास बिल्ड

डिफ़ॉल्ट रूप से, WuppieFuzz अपनी C निर्भरताओं (OpenSSL, SQLite, Z3) को वेंडर करता है, ताकि एक सामान्य cargo build बिना किसी अतिरिक्त सेटअप के काम करे। विकास के दौरान तेज़ संकलन के लिए, आप सभी वेंडर की गई निर्भरताओं को अक्षम कर सकते हैं और इसके बजाय सिस्टम-स्थापित लाइब्रेरियों से लिंक कर सकते हैं।

[!NOTE] z3 क्रेट को Z3 4.15+ की आवश्यकता होती है, जो अधिकांश Linux वितरण पैकेज प्रबंधकों द्वारा वितरित संस्करण से नया है। संगत संस्करण पाने के लिए Homebrew के माध्यम से Z3 स्थापित करें (brew install z3)।

सिस्टम निर्भरताएँ

अपने सिस्टम पर निम्नलिखित लाइब्रेरियाँ स्थापित करें:

Debian/Ubuntu:

root@kitploit:~
sudo apt install libssl-dev libsqlite3-dev
brew install z3  # apt's libz3-dev is too old; use Homebrew instead

Linux पर, Homebrew एक गैर-मानक पथ पर स्थापित होता है। इसकी लाइब्रेरी निर्देशिका को अपने पर्यावरण में जोड़ें ताकि कंपाइलर और रनटाइम लिंकर Z3 को ढूंढ सकें:

root@kitploit:~
eval "$(brew shellenv)"
export LIBRARY_PATH="$(brew --prefix z3)/lib:$LIBRARY_PATH"
export LD_LIBRARY_PATH="$(brew --prefix z3)/lib:$LD_LIBRARY_PATH"

[!TIP] उपरोक्त पंक्तियों को स्थायी बनाने के लिए उन्हें अपनी ~/.bashrc या ~/.zshrc में जोड़ें।

Fedora (42+):

root@kitploit:~
sudo dnf install openssl-devel sqlite-devel z3-devel

macOS (Homebrew):

root@kitploit:~
brew install openssl sqlite z3

कार्गो उपनाम

रिपॉज़िटरी में .cargo/config.toml में कार्गो उपनाम शामिल हैं जो --no-default-features के साथ बिल्ड करते हैं, सभी सिस्टम लाइब्रेरियों से लिंक करते हैं:

root@kitploit:~
cargo dev-build          # build without vendored dependencies
cargo dev-run -- <args>  # run without vendored dependencies
cargo dev-test           # test without vendored dependencies

दस्तावेज़ीकरण उत्पन्न करना

cargo doc --no-deps स्रोत कोड में टिप्पणियों से दस्तावेज़ीकरण उत्पन्न करने के लिए। दस्तावेज़ीकरण का मुख्य पृष्ठ target/doc/wuppiefuzz/index.html होगा।

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