
वेब डोमेन और उपडोमेन में उजागर Swagger/OpenAPI एंडपॉइंट का पता लगाने के लिए मल्टी-थ्रेडेड स्कैनर, जिसमें स्वचालित XSS का पता लगाना, PoC जनरेशन, और API सुरक्षा मूल्यांकन के लिए गलत-सकारात्मक फ़िल्टरिंग शामिल है।
BlackHat Arsenal 2024 में प्रस्तुत (लिंक)
/swagger-ui/index.html एंडपॉइंट के लिए प्रूफ ऑफ कॉन्सेप्ट उत्पन्न करता हैAPIDetector v3 को Python 3.x और निम्नलिखित पैकेजों की आवश्यकता है:
flask # वेब फ्रेमवर्क
requests # HTTP क्लाइंट
playwright # स्क्रीनशॉट के लिए ब्राउज़र ऑटोमेशन
nest_asyncio # Async IO समर्थन
सभी निर्भरताएं requirements.txt में सूचीबद्ध हैं और सेटअप के दौरान स्वचालित रूप से स्थापित की जा सकती हैं।
आवश्यक पैकेज स्थापित करने के बाद, आपको Playwright ब्राउज़र स्थापित करने की आवश्यकता है:
python -m playwright install
स्क्रीनशॉट कार्यक्षमता के ठीक से काम करने के लिए यह आवश्यक है।
git clone https://github.com/brinhosa/apidetector.git
cd apidetector
# macOS/Linux पर:
python3 -m venv venv
source venv/bin/activate
# Windows पर:
python -m venv venv
venv\Scripts\activate
pip install -r requirements.txt
playwright install
python app.py
python app.py --port 8080 --host 0.0.0.0
अपना ब्राउज़र खोलें और टर्मिनल में दिखाए गए URL पर जाएं।
वेब इंटरफ़ेस का उपयोग करना:
स्क्रीनशॉट भविष्य के संदर्भ के लिए screenshots निर्देशिका में सहेजे जाते हैं।
APIDetector v3 टूल के साथ इंटरैक्ट करने के दो तरीके प्रदान करता है: एक आधुनिक वेब इंटरफ़ेस (v3 में नया) और एक पारंपरिक कमांड-लाइन इंटरफ़ेस (मूल)।
python app.py [options]
उपलब्ध विकल्प:
| विकल्प | विवरण | डिफ़ॉल्ट |
|---|---|---|
-p, --port | पोर्ट नंबर | 5000 |
--host | होस्ट पता | 127.0.0.1 |
-d, --debug | डीबग मोड सक्षम करें | गलत |
उदाहरण:
# डिफ़ॉल्ट सेटिंग्स पर चलाएं (localhost:5000)
python app.py
# कस्टम पोर्ट पर चलाएं
python app.py -p 8080
# बाहरी पहुंच की अनुमति दें
python app.py --host 0.0.0.0
# डीबग मोड में चलाएं
python app.py -d
वेब इंटरफ़ेस तक पहुंचें:
परिणाम देखें:
कमांड लाइन का उपयोग करके APIDetector चलाएं। यहां कुछ उपयोग उदाहरण दिए गए हैं:
सामान्य उपयोग: Chrome user-agent के साथ 30 थ्रेड के साथ सबडोमेन की सूची स्कैन करें और परिणाम फ़ाइल में सहेजें:
python apidetector.py -i list_of_company_subdomains.txt -o results_file.txt -t 30 -ua "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36"
एकल डोमेन स्कैन करने के लिए:
python apidetector.py -d example.com
फ़ाइल से एकाधिक डोमेन स्कैन करने के लिए:
python apidetector.py -i input_file.txt
आउटपुट फ़ाइल निर्दिष्ट करने के लिए:
python apidetector.py -i input_file.txt -o output_file.txt
एक विशिष्ट संख्या में थ्रेड का उपयोग करने के लिए:
python apidetector.py -i input_file.txt -t 20
HTTP और HTTPS दोनों प्रोटोकॉल के साथ स्कैन करने के लिए:
python apidetector.py -m -d example.com
स्क्रिप्ट को शांत मोड में चलाने के लिए (वर्बोज़ आउटपुट दबाएं):
python apidetector.py -q -d example.com
कस्टम यूज़र-एजेंट के साथ स्क्रिप्ट चलाने के लिए:
python apidetector.py -d example.com -ua "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36"
यदि आप APIDetector v2 का उपयोग कर रहे हैं, तो कमांड को apidetectorv2.py से बदलें।
-d, --domain: परीक्षण करने के लिए एकल डोमेन।-i, --input: परीक्षण करने के लिए सबडोमेन वाली इनपुट फ़ाइल।-o, --output: मान्य URL लिखने के लिए आउटपुट फ़ाइल।-t, --threads: स्कैनिंग के लिए उपयोग करने के लिए थ्रेड्स की संख्या (डिफ़ॉल्ट 10 है)।-m, --mixed-mode: HTTP और HTTPS दोनों प्रोटोकॉल का परीक्षण करें।-q, --quiet: वर्बोज़ आउटपुट अक्षम करें (डिफ़ॉल्ट मोड वर्बोज़ है)।-ua, --user-agent: अनुरोधों के लिए कस्टम User-Agent स्ट्रिंग।Swagger या OpenAPI दस्तावेज़ीकरण एंडपॉइंट को उजागर करना विभिन्न जोखिम प्रस्तुत कर सकता है, मुख्यतः सूचना प्रकटीकरण से संबंधित। यहां संभावित जोखिम स्तरों के आधार पर एक क्रमबद्ध सूची दी गई है, जिसमें समान एंडपॉइंट एक साथ समूहित हैं जिन्हें APIDetector स्कैन करता है: