
एक शॉट API हमलावर टूल - दिए गए रूट से API URL ढूंढता है और स्वचालित हमलों का अनुकरण करता है
Python में लिखा गया एक पूर्ण-पाइपलाइन ब्लैक-बॉक्स API सुरक्षा स्कैनर। यह एंडपॉइंट्स की गणना करता है, पैरामीटर की पहचान करता है, HTTP विधियों की जांच करता है, प्रमाणीकरण/प्राधिकरण लॉजिक का परीक्षण करता है, और मानक OWASP API Top 10 हमला सिमुलेशन (BOLA, Broken Auth, BFLA, Mass Assignment, Rate Limiting, SSRF, Security Misconfiguration, आदि) चलाता है, साथ ही एक RESTler-शैली का विश्वसनीयता फ़ज़र जो किसी भी OWASP श्रेणी से स्वतंत्र रूप से क्रैश/500s की खोज करता है।
सभी मुख्य स्क्रिप्ट stdlib-only (केवल मानक लाइब्रेरी) होने के लिए डिज़ाइन की गई हैं। यदि सिस्टम पर बाहरी टूल्स या लाइब्रेरीज़ मौजूद नहीं हैं, तो apiharvester स्वचालित रूप से शुद्ध-Python कार्यान्वयन पर वापस आ जाता है ताकि आउट-ऑफ-द-बॉक्स निष्पादन की गारंटी हो।
apiharvester/ — मुख्य python पैकेज निर्देशिका। python3 -m apiharvester के रूप में चलाएं।scripts/check_requirements.sh — बाइनरी + पेलोड पूर्वापेक्षाओं की पुष्टि करता है।scripts/install_requirements.sh — आवश्यक SecLists पेलोड फ़ाइलें डाउनलोड करता है और वैकल्पिक रूप से बाइनरीज़ इंस्टॉल करता है (go install और pip के माध्यम से)।apiharvester.py — स्कैनर का एक स्टैंडअलोन, सिंगल-फ़ाइल वितरण।api_deep_discovery.py — डायनामिक SPA/XHR एंडपॉइंट्स की खोज के लिए Katana हेडलेस ब्राउज़र कोड का उपयोग करने वाला डायनामिक क्रॉलर।api_intelligence_engine.py — पाइपलाइन एग्रीगेटर और पैसिव भेद्यता क्लासिफायर।apisec.py — वैकल्पिक सिंगल-फ़ाइल सुरक्षा स्कैनर संस्करण।requirements.txt — Python निर्भरताओं की सूची (मुख्य रूप से वैकल्पिक Python-आधारित एक्सेलेरेटर के लिए)।payloads/ — टोही के लिए वर्डलिस्ट और पेलोड फ़ाइलें:
params.txt — API एंडपॉइंट परीक्षण के लिए 25,889 पैरामीटर नाम उम्मीदवारdirectories.txt — 62,281 सामान्य API पथ पैटर्न और निर्देशिका नामsubdomains.txt — API खोज के लिए 5,000 सबडोमेन वेरिएंटkiterunner/ — त्वरित एंडपॉइंट गणना के लिए Kiterunner रूट स्कीमा फ़ाइलेंआवश्यकताओं की पुष्टि करें: यह जांचने के लिए रीड-ओनली स्क्रिप्ट चलाएं कि क्या मुख्य टूल्स/पेलोड उपलब्ध हैं:
./scripts/check_requirements.sh
वैकल्पिक टूल्स और पेलोड फ़ाइलें इंस्टॉल करें: SecLists टॉप वर्डलिस्ट, Kiterunner रूट स्कीमा स्वचालित रूप से प्राप्त करने और टूल एक्सेलेरेटर इंस्टॉल करने के लिए इंस्टॉल स्क्रिप्ट चलाएं:
./scripts/install_requirements.sh
Python पैकेज इंस्टॉल करें:
pip3 install -r requirements.txt
स्कैनर को सीधे लक्ष्य डोमेन के विरुद्ध चलाएं:
python3 -m apiharvester example.com \
--auth "Bearer eyJ..." \
--auth2 "Bearer eyJ_lowpriv..." \
--threads 20 \
--html report.html \
--json findings.jsonl
target (पोज़िशनल): स्कैन करने के लिए FQDN डोमेन।--auth: प्रमाणित जांच के लिए उच्च-विशेषाधिकार एक्सेस टोकन (जैसे, वैध उपयोगकर्ता सत्र)।--auth2: BOLA / BFLA / क्रॉस-अकाउंट विशेषाधिकार-वृद्धि परीक्षण के लिए निम्न-विशेषाधिकार एक्सेस टोकन।--threads: थ्रेडपूल आकार (डिफ़ॉल्ट: 20)।--timeout: सेकंड में HTTP अनुरोध टाइमआउट (डिफ़ॉल्ट: 10)।--burst: रेट-लिमिटिंग सत्यापन के लिए तेज़ अनुरोध गणना (डिफ़ॉल्ट: 20)।--json: JSONL प्रारूप रिपोर्ट सहेजें (लाइन-डेलिमिटेड JSON निष्कर्ष)।--html: इंटरैक्टिव HTML डैशबोर्ड रिपोर्ट सहेजें।--output-dir: डिफ़ॉल्ट आउटपुट निर्देशिका पथ को ओवरराइड करें (जैसे, ./scans/example.com)।--skip-recon: रेकॉन चरणों को छोड़ें, पिछले रन से मौजूदा आउटपुट फ़ाइलों का उपयोग करें।--recon-dir: पहले से मौजूद रेकॉन आउटपुट निर्देशिका लोड करें और केवल हमला चरण चलाएं।--attacks-only: केवल हमला चरण चलाएं (--skip-recon का तात्पर्य है)।--attacks: चलाने के लिए कॉमा-सेपरेटेड हमला सूची। डिफ़ॉल्ट: सभी। उपलब्ध:
bola,broken_auth,mass_assignment,rate_limit,bfla,business_logic,
ssrf,misconfiguration,inventory,sspp,injection,reliability,secrets
OWASP API Top 10 (API1–API10:2023):
bola) — Broken Object-Level Authorization। ID फ़ज़िंग (0, 1, 2, 99, "admin", "test", UUID वेरिएंट, आदि) और डिफरेंशियल ऑथ टोकन के साथ ऑब्जेक्ट-ID एंडपॉइंट्स का परीक्षण करता है।broken_auth) — अनऑथेंटिकेटेड एंडपॉइंट खोज, JWT कमजोर-सीक्रेट क्रैकिंग, alg=none बायपास, क्लेम छेड़छाड़, kid इंजेक्शन, साथ ही OPTIONS/HEAD विधि बायपास।mass_assignment) — PUT/PATCH बॉडी में विशेषाधिकार-वृद्धि फ़ील्ड इंजेक्शन (role, is_admin, verified, balance, आदि)।rate_limit) — 20+ तेज़ अनुरोध भेजता है; 429 Retry-After के बजाय 200 लौटाने वाले एंडपॉइंट्स को फ़्लैग करता है।bfla) — Broken Function-Level Authorization। संवेदनशील पथों (/admin, /roles, /impersonate, आदि) का निम्न-विशेषाधिकार टोकन के साथ और बिना परीक्षण करता है।business_logic) — वर्कफ़्लो/स्टेट-मशीन उल्लंघन (जैसे, भुगतान के बाद ऑर्डर अपडेट करना)।ssrf) — URL पैरामीटर और अनुरोध बॉडी के माध्यम से सर्वर-साइड रिक्वेस्ट फ़ॉर्जरी के लिए परीक्षण करता है।misconfiguration) — CORS (सक्रिय: अविश्वसनीय Origin भेजता है), अनुपस्थित सुरक्षा हेडर, वर्बोज़ त्रुटियां, सर्वर बैनर लीक।inventory) — अप्रलेखित एंडपॉइंट्स, परित्यक्त एंडपॉइंट्स, उजागर एडमिन इंटरफ़ेस।sspp) — Unsafe Server-Side Post Processing (टेम्पलेट इंजेक्शन, XPath इंजेक्शन, आदि)।बोनस हमले:
injection) — SQL इंजेक्शन, XSS, कमांड इंजेक्शन (त्रुटि-आधारित + समय-आधारित ब्लाइंड)।reliability) — RESTler-शैली फ़ज़िंग: 5xx क्रैश और सर्वर विश्वसनीयता बग खोजने के लिए सीमा/विकृत-इनपुट परीक्षण (OWASP श्रेणियों से स्वतंत्र)।secrets) — प्रतिक्रिया बॉडी में लीक हुए क्रेडेंशियल्स के लिए पैटर्न मिलान: AWS Access Keys, Google API Keys, Slack Tokens, Stripe Keys, GitHub Tokens, Private Key Blocks, JWTs, और सामान्य सीक्रेट असाइनमेंट (api_key=..., password=..., आदि)।प्रमाणित + निम्न-विशेषाधिकार टोकन के साथ पूर्ण स्कैन (BOLA/BFLA के लिए सर्वोत्तम):
python3 -m apiharvester api.example.com \
--auth "Bearer high_priv_token_here" \
--auth2 "Bearer low_priv_token_here" \
--html report.html \
--json findings.jsonl
त्वरित केवल-रेकॉन (एंडपॉइंट्स खोजें, कोई हमला नहीं):
python3 -m apiharvester example.com --skip-recon --attacks ""
(या कुछ हमला चरणों को छोड़ने के लिए बस --auth प्रदान न करें।)
सहेजे गए रेकॉन डेटा के विरुद्ध केवल हमले फिर से चलाएं (तेज़ पुनरावृत्ति):
python3 -m apiharvester example.com --recon-dir output/example.com_20260715_140233 --attacks-only
केवल विशिष्ट हमले चलाएं (जैसे, BOLA + Secrets):
python3 -m apiharvester example.com --attacks bola,secrets
TLS प्रमाणपत्र त्रुटियों को बायपास करें (कॉर्पोरेट प्रॉक्सी, स्टेजिंग वातावरण):
# apiharvester डिफ़ॉल्ट रूप से एक अनुमतिवादी TLS संदर्भ का उपयोग करता है — कोई अतिरिक्त फ़्लैग आवश्यक नहीं
# सभी HTTPS एंडपॉइंट्स स्व-हस्ताक्षरित/इंटरसेप्टेड सर्ट्स के साथ भी काम करते हैं
python3 -m apiharvester https://staging-api.example.com
प्रत्येक स्कैन हमला चरण चलने से पहले अपने रेकॉन आर्टिफ़ैक्ट्स को एक संरचित आउटपुट निर्देशिका में लिखता है। डिफ़ॉल्ट रूप से यह है:
output/{target}_{YYYYMMDD_HHMMSS}/
जैसे output/example.com_20260715_140233/। यदि आप एक निश्चित, पूर्वानुमेय पथ चाहते हैं (स्क्रिप्टिंग/CI के लिए उपयोगी) तो --output-dir /path/to/dir के साथ स्थान को ओवरराइड करें।