
एक शक्तिशाली निर्देशिका ब्रूट-फोर्स टूल जो पुनरावर्ती/मल्टीप्लेक्स संचालन, एपीआई खोज और गणना, जेएस फ़ाइल स्क्रैपिंग, और एक कमांड में एपीआई HTTP विधियों की सूची बनाने के लिए अनुकूलित है। यह केवल API के लिए नहीं है, मेरा टूल उनमें उत्कृष्टता प्राप्त करता है।
API पुनर्जागरण और पेनिट्रेशन परीक्षण के लिए डिज़ाइन किया गया एक शक्तिशाली डायरेक्टरी ब्रूट-फोर्स उपकरण। स्वचालित रूप से छिपे हुए API एंडपॉइंट खोजता है, रिकर्सिव सबस्कैनिंग करता है, और गहन API गणना के लिए HTTP विधियों की जांच करता है।
✨ मुख्य क्षमताएँ:
requests लाइब्रेरीtmux (वैकल्पिक, --split फ़्लैग के लिए)xfce-terminal (Linux डेस्कटॉप वातावरण के लिए)# रिपॉजिटरी क्लोन करें
git clone https://github.com/austinjump-sec/API-SPY.git
cd API-SPY
# निर्भरताएँ (डिपेंडेंसी) इंस्टॉल करें
pip install requests
# स्क्रिप्ट्स को निष्पादन योग्य बनाएँ (वैकल्पिक)
chmod +x apispy.py apiprobe.py
python3 apispy.py <baseUrl> <wordlist> [OPTIONS]
| तर्क | विवरण |
|---|---|
<baseUrl> | लक्ष्य URL (जैसे, http://example.com या http://api.example.com) |
<wordlist> | एंडपॉइंट युक्त वर्डलिस्ट फ़ाइल का पथ (प्रति पंक्ति एक) |
python3 apispy.py http://api.example.com wordlist.txt
python3 apispy.py http://api.example.com wordlist.txt -t10
python3 apispy.py http://api.example.com wordlist.txt -t5 --split
python3 apispy.py http://api.example.com/v1 wordlist.txt -t20
उपकरण पूर्वनिर्धारित सामान्य API पथों के एक सेट का परीक्षण करके शुरू होता है:
api, v1, v2, api/v1, api/v2, graphql, rest# से शुरू होने वाली टिप्पणियों को अनदेखा करता है)200, 401, 403जब कोई एंडपॉइंट मिलता है, तो आपको संकेत दिया जाता है:
'-> Subscan <url>? (y/n) [Auto-skip in 5s]:
y/yes चुनेंसबस्कैनिंग के बाद, आपको संकेत दिया जाता है:
'-> Probe methods on <url>? (y/n) [Auto-skip in 5s]:
apiprobe.py लॉन्च करता है जो खोजे गए एंडपॉइंट पर HTTP विधियों का परीक्षण करता हैAllow हेडर संकेत दिखाता है[+] Url found: http://api.example.com/v1 ← 200 OK (सुलभ)
'-> Subscan http://api.example.com/v1? (y/n) [Auto-skip in 0s]:
[-] Timeout: Skipped prompt for http://api.example.com/v1?
'-> Probe methods on http://api.example.com/v1? (y/n) [Auto-skip in 4s]:
[-] Url found but not permitted (403 ERR): ... ← निषिद्ध लेकिन मौजूद है
[-] Url found but not permitted (401 ERR): ... ← प्रमाणीकरण आवश्यक है
[+] GET -> STATUS: 200 OK (Size: 1024)
[-] POST -> STATUS: 405 (Size: 0)
[Header Hint] Allow: GET, HEAD, OPTIONS
एक साधारण टेक्स्ट फ़ाइल बनाएँ जिसमें एंडपॉइंट हों (प्रति पंक्ति एक):
admin
users
api/users
v1/products
v2/customers
/api/v1/auth
/graphql
search
data
config
नोट: # से शुरू होने वाली पंक्तियाँ टिप्पणियाँ मानी जाती हैं और अनदेखा की जाती हैं।
API-SPY के साथ उपयोग करने के लिए लोकप्रिय API वर्डलिस्ट:
# स्टील्थ मोड (कम थ्रेड)
python3 apispy.py http://target.com wordlist.txt -t3
# संतुलित मोड
python3 apispy.py http://target.com wordlist.txt -t15
# आक्रामक मोड
python3 apispy.py http://target.com wordlist.txt -t50
timeout=5 संशोधित करेंसुनिश्चित करें कि वर्डलिस्ट पथ सही है और फ़ाइल मौजूद है:
ls -la /path/to/wordlist.txt
सबस्कैनिंग करते समय, सुनिश्चित करें:
apispy.pyapiprobe.pyयदि --split विफल होता है:
sudo apt install tmuxtmux new-session -s scancurl http://your-url/check_status() फ़ंक्शन में अनुरोध टाइमआउट बढ़ाएँ⚠️ कानूनी और नैतिक:
स्रोत कोड में टाइमआउट मान समायोजित करने के लिए संपादित करें:
def ask_subscan(url, wordlist, timeout=10): # 5 सेकंड से बदलकर 10 सेकंड करें
विशिष्ट API पथों को लक्षित करने वाली वर्डलिस्ट बनाएँ:
# केवल एडमिन एंडपॉइंट
grep -i "admin" full-wordlist.txt > admin-wordlist.txt
# केवल v1 API
grep "v1" full-wordlist.txt > v1-wordlist.txt
एक लूप के साथ कई लक्ष्यों को स्कैन करें:
for target in http://target1.com http://target2.com http://target3.com; do
python3 apispy.py "$target" wordlist.txt -t10
done
योगदान का स्वागत है! बेझिझक:
यह उपकरण केवल शैक्षिक और अधिकृत सुरक्षा परीक्षण उद्देश्यों के लिए प्रदान किया गया है। किसी भी सिस्टम को स्कैन करने से पहले उपयोगकर्ता यह सुनिश्चित करने के लिए जिम्मेदार हैं कि उनके पास उचित प्राधिकरण है। कंप्यूटर सिस्टम तक अनधिकृत पहुंच अवैध है।
यह परियोजना सुरक्षा अनुसंधान और अधिकृत परीक्षण उद्देश्यों के लिए यथावत प्रदान की गई है।
द्वारा बनाया गया: austinjump-sec
रिपॉजिटरी: austinjump-sec/API-SPY
| तर्क | विवरण |
|---|
--t<number> | थ्रेड गणना (अधिकतम 150, डिफ़ॉल्ट: 1) |
--split | नए टर्मिनल विंडो के बजाय tmux स्प्लिट-विंडो का उपयोग करें |
--debug | अन्यथा छिपे हुए त्रुटि संदेश दिखाता है |
--loud | सभी संदेश दिखाता है, सकारात्मक और त्रुटि दोनों, जो भी 404 नहीं लौटाते उन्हें हाइलाइट करता है |
--js | JavaScript फ़ाइलों के लिए स्कैन करता है और सामान्य हार्डकोडेड API एंडपॉइंट के लिए मिली किसी भी फ़ाइल को स्क्रैप करता है |