
mzap v2.2.1
⚡️ एकाधिक लक्ष्य ZAP Scanning
mzap
mzap मल्टी-टारगेट ZAP स्कैनिंग के लिए एक Crystal CLI है।
यह एक या अधिक ZAP API होस्ट पर लक्ष्यों को वितरित करता है, वैकल्पिक प्रतीक्षा मोड का समर्थन करता है, और रिपोर्ट निर्यात कर सकता है।
विशेषताएँ
- स्कैन कमांड:
spider,ajaxspider,clientspider(ZAP 2.16+),ascan,pscan - API परिभाषा आयात:
openapi,soap,graphql, औरpostmanके लिए - ZAP 2.16+ डिफरेंशियल/इन्क्रीमेंटल स्कैनिंग के लिए Sites Tree
export/prune - स्कैन नीति खोज (
policies) - राउंड-रॉबिन शेड्यूलिंग के साथ मल्टी-होस्ट डिस्पैच
- टाइमआउट समर्थन के साथ वैकल्पिक प्रतीक्षा/पोल मोड
- फ़ॉलबैक व्यवहार के साथ रिपोर्ट निर्यात (
html/pdf/json/md/sarif) - CI एग्ज़िट कोड के लिए
--fail-onजोखिम गेट spider,ajaxspider,clientspider,ascan, याallके लिए स्टॉप कमांड$HOME/.config/mzap/config.tomlऔर विरासत पथों से वैकल्पिक कॉन्फ़िग लोडिंग
आवश्यकताएँ
- क्रिस्टल
>= 1.19.1 - एक चलता हुआ ZAP API एंडपॉइंट (या एंडपॉइंट्स)
इंस्टॉलेशन
Homebrew
brew install hahwul/mzap/mzap
स्रोत से निर्माण
shards install --frozen
crystal build --release src/mzap_cli.cr -o bin/mzap
बिना निर्माण के चलाएँ
crystal run src/mzap_cli.cr -- version
Docker इमेज
docker build -t mzap .
docker run --rm -v "$PWD:/work" mzap spider --urls /work/samples/target.txt --apis http://host.docker.internal:8090
उपयोग
Usage:
mzap [command]
Subcommands:
ajaxspider ZAP में Ajax Spider स्कैन शुरू करें
ascan ZAP में Active Scan जॉब शुरू करें
clientspider ZAP में Client Spider स्कैन शुरू करें (ZAP 2.16+)
help किसी कमांड के लिए सहायता दिखाएँ
import API परिभाषाएँ आयात करें (openapi/soap/graphql/postman)
policies ZAP में active-scan नीतियाँ सूचीबद्ध करें
pscan ZAP में Passive Scan पूर्ण होने की प्रतीक्षा करें
sitestree ZAP Sites Tree निर्यात या छँटाई करें (ZAP 2.16+)
spider ZAP में Spider स्कैन शुरू करें
stop चल रहे स्कैन रोकें
version mzap संस्करण दिखाएँ
Flags:
--apikey string ZAP API कुंजी (जब API कुंजी प्रमाणीकरण अक्षम हो तो छोड़ें)
--apis string अल्पविराम से अलग ZAP API होस्ट URL
e.g. --apis http://localhost:8090,http://192.168.0.4:8090 (default "http://localhost:8090")
--config string कॉन्फ़िग फ़ाइल पथ (TOML समर्थित; डिफ़ॉल्ट: $HOME/.config/mzap/config.toml)
--context string स्कैन करने से पहले आयात करने के लिए ZAP कॉन्टेक्स्ट फ़ाइल
--fail-on string जोखिम स्तर पर या उससे ऊपर अलर्ट होने पर एग्ज़िट कोड 1 के साथ विफल
--format string आयात के लिए API परिभाषा प्रारूप (openapi/soap/graphql/postman)
--target-url string आयात के लिए लक्ष्य/एंडपॉइंट URL ओवरराइड
--policy string सक्रिय स्कैन के लिए स्कैन नीति नाम
--report-format स्कैन पूर्ण होने के बाद रिपोर्ट प्रारूप (html/pdf/json/md/sarif)
--report-out रिपोर्ट आउटपुट पथ (default: mzap-report-<timestamp>.<ext>)
--concurrency समानांतर स्कैन डिस्पैच की संख्या (डिफ़ॉल्ट 1)
--wait शुरू किए गए स्कैन के पूर्ण होने की प्रतीक्षा करें
--wait-interval प्रतीक्षा करते समय पोल अंतराल सेकंड में (default 2)
--wait-timeout प्रतीक्षा टाइमआउट सेकंड में (default 0: कोई टाइमआउट नहीं)
-h, --help mzap के लिए सहायता दिखाएँ
--urls string URL सूची फ़ाइल का पथ (जैसे --urls hosts.txt)
कमांड-विशिष्ट फ़्लैग के लिए mzap help <command> चलाएँ।
उदाहरण
# दो ZAP API होस्ट के साथ spider स्कैन
mzap spider --urls samples/target.txt --apis http://localhost:8090,http://192.168.0.4:8090
# स्कैन चलाएँ, पूर्ण होने की प्रतीक्षा करें, और HTML रिपोर्ट उत्पन्न करें
mzap spider --urls samples/target.txt --apis http://localhost:8090 --wait --report-format html --report-out reports/mzap.html
# Client Spider (ब्राउज़र-आधारित क्रॉलर, ZAP 2.16+; Client Side Integration ऐड-ऑन की आवश्यकता)
mzap clientspider --urls samples/target.txt --apis http://localhost:8090 --wait
# OpenAPI परिभाषा आयात करें, पैसिव स्कैन की प्रतीक्षा करें, उच्च-जोखिम अलर्ट पर CI गेट करें
mzap import --format openapi --urls samples/specs.txt --target-url https://api.example.com \
--apis http://localhost:8090 --wait --report-format sarif --fail-on high
# stdin से API स्पेक आयात करें
echo https://api.example.com/openapi.json | mzap import --format openapi --urls -
# उपलब्ध स्कैन नीतियाँ खोजें (फिर उनमें से किसी एक का उपयोग करें `ascan --policy`)
mzap policies --apis http://localhost:8090
# डिफरेंशियल स्कैनिंग के लिए Sites Tree बेसलाइन (पथ ZAP डेमॉन द्वारा हल किया जाता है)
mzap sitestree export baseline.tree --apis http://localhost:8090
mzap sitestree prune baseline.tree --apis http://localhost:8090
# सभी चल रहे स्कैन प्रकार रोकें
mzap stop all --apis http://localhost:8090
API आयात करना:
mzap importZAP के Sites Tree को सीड करता है और पैसिव स्कैनिंग को चलने देता है; बाद में आयातित एंडपॉइंट्स को सक्रिय रूप से स्कैन करने के लिए, उसी लक्ष्य(लक्ष्यों) के विरुद्धmzap ascanचलाएँ। स्थानीय फ़ाइलों के लिए,--urls(और--target-url) में पथ ZAP डेमॉन द्वारा हल किए जाते हैं, इसलिए जब ZAP Docker में चलता है तो उन्हें कंटेनर में माउंट करें।
कॉन्फ़िग
mzap मौजूद होने पर स्वचालित रूप से कॉन्फ़िग लोड करता है।
प्राथमिकता है:
- स्पष्ट
--configपथ (यदि मौजूद है) $HOME/.config/mzap/config.toml$HOME/.config/mzap/config+ एक्सटेंशन वेरिएंट$HOME/.mzap+ एक्सटेंशन वेरिएंट
CLI फ़्लैग हमेशा कॉन्फ़िग मानों को ओवरराइड करते हैं।
[mzap]
apis = ["http://localhost:8090", "http://192.168.0.4:8090"]
apikey = "your-zap-api-key"
urls = "samples/target.txt"
wait = true
wait_interval = 2
wait_timeout = 0
report_format = "html"
report_out = "reports/mzap.html"
GitHub Action
इस रिपॉजिटरी में Docker-आधारित GitHub Action (action.yml) शामिल है।
- name: Run mzap
uses: hahwul/mzap@<tag>
with:
arguments: "spider --urls samples/target.txt --apis http://localhost:8090"
डेवलपमेंट
# परीक्षण
crystal spec
# रिलीज़ बिल्ड
crystal build --release src/mzap_cli.cr -o bin/mzap