
वेब डोमेन और उपडोमेन में उजागर 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]
उपलब्ध विकल्प:
उदाहरण:
# डिफ़ॉल्ट सेटिंग्स पर चलाएं (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
कस्टम यूज़र-एजेंट के साथ स्क्रिप्ट चलाने के लिए:
यदि आप 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 स्कैन करता है:
'/swagger-ui.html', '/swagger-ui/', '/swagger-ui/index.html', '/api/swagger-ui.html', '/documentation/swagger-ui.html', '/swagger/index.html', '/api/docs', '/docs', '/api/swagger-ui', '/documentation/swagger-ui''/openapi.json', '/swagger.json', '/api/swagger.json', '/swagger.yaml', '/swagger.yml', '/api/swagger.yaml', '/api/swagger.yml', '/api.json', '/api.yaml', '/api.yml', '/documentation/swagger.json', '/documentation/swagger.yaml', '/documentation/swagger.yml''/v2/api-docs', '/v3/api-docs', '/api/v2/swagger.json', '/api/v3/swagger.json', '/api/v1/documentation', '/api/v2/documentation', '/api/v3/documentation', '/api/v1/api-docs', '/api/v2/api-docs', '/api/v3/api-docs', '/swagger/v2/api-docs', '/swagger/v3/api-docs', '/swagger-ui.html/v2/api-docs', '/swagger-ui.html/v3/api-docs', , '/swagger-resources', '/swagger-resources/configuration/ui', '/swagger-resources/configuration/security', '/api/swagger-resources', '/api.html'APIDetector में योगदान का स्वागत है! रिपॉजिटरी को फोर्क करने, परिवर्तन करने और पुल रिक्वेस्ट सबमिट करने के लिए स्वतंत्र महसूस करें। परीक्षण और सुविधा सुझावों में मदद करने वाले योगदान सदस्यों को विशेष धन्यवाद:
APIDetector उपकरण सख्ती से केवल परीक्षण और शैक्षिक उद्देश्यों के लिए है। APIDetector के डेवलपर्स इस उपकरण के उपयोग से होने वाले किसी भी दुरुपयोग, अनपेक्षित परिणाम या क्षति के लिए कोई दायित्व नहीं लेते हैं और सभी जिम्मेदारी से इनकार करते हैं। APIDetector का कोई भी अनधिकृत, अवैध या अन्यथा हानिकारक उपयोग स्पष्ट रूप से निषिद्ध है। अंतिम उपयोगकर्ता सभी प्रासंगिक स्थानीय, राज्य, संघीय और अंतर्राष्ट्रीय कानूनों के अनुपालन को सुनिश्चित करने की पूरी जिम्मेदारी वहन करता है। इस उपकरण का उपयोग करके, उपयोगकर्ता स्वीकार करता है कि उसके पास उन नेटवर्क या सिस्टम का परीक्षण करने के लिए आवश्यक प्राधिकरण हैं जिन्हें वह स्कैन करने का इरादा रखता है, और डेवलपर्स को इसके उपयोग से उत्पन्न होने वाले सभी दावों से क्षतिपूर्ति करने के लिए सहमत होता है। अंतिम उपयोगकर्ता पूरी तरह से यह सुनिश्चित करने के लिए जिम्मेदार है कि इस उपकरण का उसका उपयोग परीक्षण के तहत नेटवर्क या सिस्टम को नियंत्रित करने वाले किसी भी कानूनी प्रतिबंध या सेवा की शर्तों का उल्लंघन नहीं करता है।
अस्वीकरण: APIDetector उपकरण उपयोग APIDetector उपकरण विशेष रूप से कानूनी परीक्षण और शैक्षिक उद्देश्यों के लिए डिज़ाइन किया गया है। इसे किसी भी प्रकार की वारंटी, व्यक्त या निहित, के बिना "जैसा है" आधार पर प्रदान किया जाता है। APIDetector के डेवलपर्स और वितरक स्पष्ट रूप से दुरुपयोग, अनपेक्षित परिणामों, या इस उपकरण के उपयोग से होने वाली क्षति के लिए किसी भी देयता से इनकार करते हैं। महत्वपूर्ण कानूनी सूचना: APIDetector का अनधिकृत, अवैध या अनैतिक उपयोग सख्त वर्जित है। उपयोगकर्ता सभी लागू स्थानीय, राज्य, संघीय और अंतर्राष्ट्रीय कानूनों के साथ-साथ उन नेटवर्क या सिस्टम को नियंत्रित करने वाली सेवा की किसी भी शर्तों का पालन करने के लिए पूरी तरह से जिम्मेदार हैं जिनके साथ वे जुड़ते हैं। APIDetector का उपयोग करके, उपयोगकर्ता पुष्टि करते हैं कि उनके पास लक्षित नेटवर्क या सिस्टम का परीक्षण करने के लिए आवश्यक प्राधिकरण हैं। जोखिम की धारणा और क्षतिपूर्ति: APIDetector को डाउनलोड करने, स्थापित करने या उपयोग करने से, उपयोगकर्ता इसके उपयोग से जुड़े किसी भी कानूनी परिणाम की पूरी जिम्मेदारी लेता है। APIDetector के डेवलपर्स और वितरक इसके उपयोग से उत्पन्न होने वाले किसी भी कानूनी परिणाम, क्षति या तीसरे पक्ष के दावों के लिए उत्तरदायी नहीं होंगे। उपयोगकर्ता अपने कार्यों से जुड़े किसी भी दावे, कानूनी शुल्क या देनदारियों के खिलाफ डेवलपर्स और वितरकों को क्षतिपूर्ति करने और हानिरहित रखने के लिए सहमत होते हैं।
यह प्रोजेक्ट MIT लाइसेंस के तहत लाइसेंस प्राप्त है।
| विकल्प | विवरण | डिफ़ॉल्ट |
|---|
-p, --port | पोर्ट नंबर | 5000 |
--host | होस्ट पता | 127.0.0.1 |
-d, --debug | डीबग मोड सक्षम करें | गलत |
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"
'/api/swagger/v2/api-docs''/api/swagger/v3/api-docs'