Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
xnLinkFinder — एक पायथन टूल जो किसी लक्ष्य के लिए एंडपॉइंट, संभावित पैरामीटर, लक्ष्य-विशिष्ट वर्डलिस्ट और रहस्यों की खोज करने के लिए उपयोग किया जाता है। | Kitploit
उपकरण/GitHubGitHub/xnl-h4ck3r/xnlinkfinder
टोहीजानकारी एकत्र करनावेब सुरक्षापेनिट्रेशन टेस्टिंगसीक्रेट डिटेक्शनक्रॉलर
GitHubxnl-h4ck3r/xnlinkfinder

xnLinkFinder

एक पायथन टूल जो किसी लक्ष्य के लिए एंडपॉइंट, संभावित पैरामीटर, लक्ष्य-विशिष्ट वर्डलिस्ट और रहस्यों की खोज करने के लिए उपयोग किया जाता है।

रिपॉजिटरी देखें
1.6k1865 महीने पहलेKitploit द्वारा समीक्षित

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

परिचय - v8.2

यह एक उपकरण है जो किसी दिए गए लक्ष्य के लिए समापन बिंदु (endpoints) खोजने, संभावित पैरामीटर खोजने, लक्ष्य-विशिष्ट शब्द सूची (wordlist) उत्पन्न करने और गुप्त जानकारी (secrets) खोजने के लिए उपयोग किया जाता है। यह उन्हें निम्नलिखित तरीकों से खोज सकता है:

  • एक लक्ष्य को क्रॉल करना (डोमेन/URL प्रदान करें)
  • एकाधिक लक्ष्यों को क्रॉल करना (डोमेन/URL की फ़ाइल प्रदान करें)
  • दिए गए निर्देशिका में फ़ाइलें खोजना (निर्देशिका का नाम प्रदान करें)
  • एकल फ़ाइल की सामग्री खोजना
  • उन्हें Burp प्रोजेक्ट से प्राप्त करें (Burp XML फ़ाइल का स्थान प्रदान करें)
  • उन्हें ZAP प्रोजेक्ट से प्राप्त करें (ZAP ASCII संदेश फ़ाइल का स्थान प्रदान करें)
  • उन्हें Caido प्रोजेक्ट से प्राप्त करें (Caido निर्यात CSV फ़ाइल का स्थान प्रदान करें)
  • उन्हें HAR (HTTP Archive) फ़ाइल से प्राप्त करें (HAR JSON फ़ाइल का स्थान प्रदान करें)
  • एक waymore परिणाम निर्देशिका को संसाधित करना (waymore -mode R से संग्रहीत प्रतिक्रिया फ़ाइलें खोजना और waymore.txt से URL तथा waymore_index.txt से मूल URL का अनुरोध करना - waymore README.md देखें)

यह पायथन स्क्रिप्ट मेरे Burp एक्सटेंशन GAP की लिंक खोजने की क्षमताओं पर आधारित है। शुरुआती बिंदु के रूप में, मैंने Gerben Javado द्वारा बनाया गया अद्भुत टूल LinkFinder लिया, और लिंक खोजने के लिए Regex का उपयोग किया, लेकिन और अधिक खोजने के लिए अतिरिक्त सुधार किए।

स्थापना

xnLinkFinder Python 3 का समर्थन करता है।

xnLinkFinder को डिफ़ॉल्ट (ग्लोबल) पायथन वातावरण में स्थापित करें।```bash pip install xnLinkFinder

root@kitploit:~
या```bash
pip install git+https://github.com/xnl-h4ck3r/xnLinkFinder.git -v

आप अपग्रेड कर सकते हैं```bash pip install --upgrade xnLinkFinder

root@kitploit:~
### pipx

त्वरित सेटअप पृथक पायथन वातावरण में [pipx](https://pypa.github.io/pipx/) का उपयोग करके```bash
pipx install git+https://github.com/xnl-h4ck3r/xnLinkFinder.git

नोट: PDF फ़ाइलों से लिंक निकालने के लिए, आप अपने सिस्टम पर pdftotext इंस्टॉल कर सकते हैं। आप इसे Linux पर sudo apt install -y poppler-utils या macOS पर brew install poppler का उपयोग करके इंस्टॉल कर सकते हैं। यदि आपके पास pdftotext इंस्टॉल नहीं है, तो xnLinkFinder pypdf Python लाइब्रेरी का उपयोग करने का विकल्प चुनेगा। यदि कोई टेक्स्ट नहीं मिलता है (जैसे स्कैन किए गए PDF के लिए), तो यह ocrmypdf का उपयोग करने का प्रयास करेगा यदि वह इंस्टॉल है (उदा. sudo apt install -y ocrmypdf)। सामान्यतः pdftotext और ocrmypdf का उपयोग करना अकेले pypdf की तुलना में बहुत बेहतर परिणाम देता है।

उपयोग| तर्क | लंबा तर्क | विवरण |

| ----------- | -------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | -i | --input | इनपुट: URL, URL की टेक्स्ट फ़ाइल, खोजने के लिए फ़ाइलों की एक निर्देशिका, Burp XML आउटपुट फ़ाइल, ZAP आउटपुट फ़ाइल, Caido CSV फ़ाइल, HAR JSON फ़ाइल, या सामग्री खोजने के लिए एक फ़ाइल। | | -o | --output | लिंक आउटपुट को सहेजने के लिए फ़ाइल, यदि आवश्यक हो तो पथ सहित (डिफ़ॉल्ट: output.txt)। यदि cli पर सेट किया गया है, तो आउटपुट केवल STDOUT पर लिखा जाता है। यदि फ़ाइल पहले से मौजूद है, तो इसमें केवल जोड़ा जाएगा (और डुप्लिकेट हटाए जाएंगे) जब तक कि विकल्प -ow पास न किया जाए। | | -op | --output-params | संभावित पैरामीटर आउटपुट को सहेजने के लिए फ़ाइल, यदि आवश्यक हो तो पथ सहित (डिफ़ॉल्ट: parameters.txt)। यदि cli पर सेट किया गया है, तो आउटपुट केवल STDOUT पर लिखा जाता है (लेकिन किसी अन्य प्रोग्राम को पाइप नहीं किया जाता)। यदि फ़ाइल पहले से मौजूद है, तो इसमें केवल जोड़ा जाएगा (और डुप्लिकेट हटाए जाएंगे) जब तक कि विकल्प -ow पास न किया जाए। | | -owl | --output-wordlist | लक्ष्य-विशिष्ट शब्दसूची आउटपुट को सहेजने के लिए फ़ाइल, यदि आवश्यक हो तो पथ सहित (डिफ़ॉल्ट: कोई शब्दसूची आउटपुट नहीं)। यदि cli पर सेट किया गया है, तो आउटपुट केवल STDOUT पर लिखा जाता है (लेकिन किसी अन्य प्रोग्राम को पाइप नहीं किया जाता)। यदि फ़ाइल पहले से मौजूद है, तो इसमें केवल जोड़ा जाएगा (और डुप्लिकेट हटाए जाएंगे) जब तक कि विकल्प -ow पास न किया जाए। | | -oo | --output-oos | दायरे से बाहर के लिंक आउटपुट को सहेजने के लिए फ़ाइल, यदि आवश्यक हो तो पथ सहित (डिफ़ॉल्ट: कोई OOS आउटपुट नहीं)। यदि पर सेट किया गया है, तो आउटपुट केवल STDOUT पर लिखा जाता है (लेकिन किसी अन्य प्रोग्राम को पाइप नहीं किया जाता)। यदि फ़ाइल पहले से मौजूद है, तो इसमें केवल जोड़ा जाएगा (और डुप्लिकेट हटाए जाएंगे) जब तक कि विकल्प -ow पास न किया जाए। | | -os | --output-secrets | प्रतिक्रियाओं में मिले किसी भी रहस्य को सहेजने के लिए फ़ाइल (JSON प्रारूप में), यदि आवश्यक हो तो पथ सहित (डिफ़ॉल्ट: कोई रहस्य आउटपुट नहीं)। यदि फ़ाइल पहले से मौजूद है, तो रहस्यों को मर्ज कर दिया जाएगा जब तक कि विकल्प -ow पास न किया जाए। रहस्यों को प्रकार और मान के अनुसार समूहित किया जाता है, जिसमें प्रत्येक का स्रोत सरणी होता है। | | -ow | --output-overwrite | यदि आउटपुट फ़ाइल पहले से मौजूद है, तो उसमें जोड़ने के बजाय उसे अधिलेखित कर दिया जाएगा। | | -sp | --scope-prefix | से शुरू होने वाले किसी भी लिंक को मूल लिंक के बजाय आउटपुट में दायरे के डोमेन के साथ उपसर्गित किया जाएगा। यदि पास किया गया मान एक मान्य फ़ाइल नाम है, तो उस फ़ाइल का उपयोग किया जाएगा, अन्यथा स्ट्रिंग शाब्दिक का उपयोग किया जाएगा। | | -spo | --scope-prefix-original | यदि तर्क पास किया गया है, तो यह निर्धारित करता है कि से शुरू होने वाला मूल लिंक भी आउटपुट में शामिल किया गया है या नहीं (डिफ़ॉल्ट: false) | | -spkf | --scope-prefix-keep-failed | यदि तर्क पास किया गया है, तो यह निर्धारित करता है कि उपसर्गित लिंक को आउटपुट में रखा जाएगा या नहीं यदि वह 404 था या RequestException होता है (डिफ़ॉल्ट: false) | | -sf | --scope-filter | आउटपुट लिंक को केवल तभी शामिल करने के लिए फ़िल्टर करेगा यदि लिंक का डोमेन निर्दिष्ट दायरे में है। यदि पास किया गया मान एक मान्य फ़ाइल नाम है, तो उस फ़ाइल का उपयोग किया जाएगा, अन्यथा स्ट्रिंग शाब्दिक का उपयोग किया जाएगा। यह तर्क अब अनिवार्य है यदि इनपुट कोई डोमेन/URL (या डोमेन/URL की फ़ाइल) है ताकि दायरे में न आने वाली साइटों को क्रॉल करने से रोका जा सके और भ्रामक परिणामों को भी रोका जा सके। | | -c | --cookies † | HTTP अनुरोधों के साथ भेजने के लिए कुकीज़ जोड़ें। प्रारूप में पास करें | | -H | --headers † | HTTP अनुरोधों के साथ भेजने के लिए कस्टम हेडर जोड़ें। प्रारूप में पास करें | | -ra | --regex-after | आउटपुट से पहले पाए गए एंडपॉइंट के विरुद्ध फ़िल्टरिंग उद्देश्यों के लिए RegEx (जैसे )। यदि यह मेल खाता है, तो लिंक आउटपुट होता है। | | -d | --depth † | खोजने के लिए गहराई का स्तर। उदाहरण के लिए, यदि मान 2 पास किया जाता है, तो शुरू में मिले सभी लिंक को फिर अधिक लिंक के लिए खोजा जाएगा (डिफ़ॉल्ट: 1)। Burp फ़ाइलों, ZAP फ़ाइलों, Caido फ़ाइलों, और HAR फ़ाइलों के लिए यह विकल्प अनदेखा किया जाता है क्योंकि वे बहुत बड़ी हो सकती हैं और बहुत अधिक मेमोरी ले सकती हैं। यह सलाह दी जाती है कि () तर्क का उपयोग करें ताकि यह सुनिश्चित हो सके कि बिना डोमेन वाले लिंक पर अनुरोध किया जा सके। | | -p | --processes † | URL या URL की फ़ाइल (Burp फ़ाइल, ZAP फ़ाइल, Caido फ़ाइल, या HAR फ़ाइल नहीं) के लिए अनुरोध प्राप्त करते समय बुनियादी मल्टीथ्रेडिंग की जाती है। यह तर्क उपयोग की गई प्रक्रियाओं (थ्रेड्स) की संख्या निर्धारित करता है (डिफ़ॉल्ट: 25) | | -rl | --rate-limit † | प्रति सेकंड भेजे जाने वाले अनुरोधों की अधिकतम संख्या (डिफ़ॉल्ट: 0, कोई दर सीमा नहीं)। यह लक्ष्य सर्वर को अभिभूत करने से रोकने में मदद करता है। | | -x | --exclude | अतिरिक्त लिंक बहिष्करण (सूची में ) अल्पविराम से अलग की गई सूची में, जैसे | | -orig | --origin | क्या आप चाहते हैं कि आउटपुट में लिंक का मूल स्रोत हो। आउटपुट में के रूप में प्रदर्शित होता है (डिफ़ॉल्ट: false) | | -prefixed | | क्या आप देखना चाहते हैं कि आउटपुट में कौन से लिंक उपसर्गित किए गए थे। आउटपुट में लिंक और मूल स्रोत के बाद प्रदर्शित करता है (डिफ़ॉल्ट: false) | | -xrel | --exclude-relative-links | डिफ़ॉल्ट रूप से, यदि परिणामों में कोई लिंक या से शुरू होता है, तो उन्हें शामिल किया जाएगा। यदि यह तर्क उपयोग किया जाता है, तो ये सापेक्ष लिंक नहीं जोड़े जाएंगे। | | -t | --timeout † | सर्वर द्वारा डेटा भेजने की प्रतीक्षा करने के लिए कितने सेकंड (डिफ़ॉल्ट: 10 सेकंड) | | -r | --retries † | विफलता के बाद अनुरोध को पुनः प्रयास करने की संख्या (जैसे टाइमआउट, कनेक्शन त्रुटि, आदि)। यह 5 पुनः प्रयास तक सीमित है (डिफ़ॉल्ट: 0) | | -inc | --include | आउटपुट में इनपुट () लिंक शामिल करें (डिफ़ॉल्ट: false) | | -u | --user-agent † | किस User Agent के लिए लिंक प्राप्त करें, जैसे । संभावित मान हैं , , और । साथ ही , और हैं जो के उपसमूह हैं लेकिन अलग-अलग उपयोग किए जा सकते हैं। | | -uc | --user-agent-custom † | सभी अनुरोधों के लिए उपयोग करने के लिए एक कस्टम User Agent स्ट्रिंग। यह / तर्क को ओवरराइड करेगा। इसका उपयोग तब किया जा सकता है जब किसी प्रोग्राम को आपकी पहचान के लिए एक विशिष्ट User Agent हेडर की आवश्यकता हो। | | -insecure | † | क्या अनुरोध करते समय TLS प्रमाणपत्र जाँच अक्षम की जानी चाहिए (डिफ़ॉल्ट: false) | | -s429 | † | रोकें जब 95 प्रतिशत से अधिक प्रतिक्रियाएं 429 Too Many Requests लौटाती हैं (डिफ़ॉल्ट: false) | | -s403 | † | रोकें जब 95 प्रतिशत से अधिक प्रतिक्रियाएं 403 Forbidden लौटाती हैं (डिफ़ॉल्ट: false) | | -sTO | † | रोकें जब 95 प्रतिशत से अधिक अनुरोध टाइम आउट होते हैं (डिफ़ॉल्ट: false) | | -sCE | † | रोकें जब 95 प्रतिशत से अधिक अनुरोधों में कनेक्शन त्रुटियाँ होती हैं (डिफ़ॉल्ट: false) | | -m | --memory-threshold | मेमोरी थ्रेशोल्ड प्रतिशत। यदि मशीन की मेमोरी थ्रेशोल्ड से ऊपर जाती है, तो प्रोग्राम को रोक दिया जाएगा और मेमोरी खत्म होने से पहले सुरक्षित रूप से समाप्त कर दिया जाएगा (डिफ़ॉल्ट: 95) | | -mfs | --max-file-size † | एक फ़ाइल का अधिकतम फ़ाइल आकार (बाइट्स में) जिसे जाँचा जाएगा यदि -i एक निर्देशिका है। यदि फ़ाइल का आकार अधिक है, तो इसे अनदेखा कर दिया जाएगा (डिफ़ॉल्ट: 500 MB)। 0 पर सेट करने का मतलब है कि कोई भी फ़ाइल अनदेखा नहीं की जाएगी, चाहे आकार कुछ भी हो। | | -mrs | --max-response-size † | डाउनलोड करने के लिए अधिकतम प्रतिक्रिया आकार (MB में)। इससे बड़ी प्रतिक्रियाओं को छोड़ दिया जाएगा (डिफ़ॉल्ट: 100 MB)। | | -fp | --forward-proxy † | URL (या URL की फ़ाइल) के साथ सक्रिय लिंक खोज के लिए, अनुरोधों को Burp या Caido जैसे प्रॉक्सी के माध्यम से पुनः भेजें, जैसे । | | -rp | --request-proxy | उपयोग करने के लिए अनुरोध प्रॉक्सी। एक प्रॉक्सी स्ट्रिंग (जैसे , ) या प्रॉक्सी सूची वाली फ़ाइल (प्रति पंक्ति एक, यादृच्छिक चयन) हो सकती है। | | | --heap | क्या विज़िट किए गए URL का हीप स्नैपशॉट लेना है और ब्राउज़र मेमोरी से लिंक निकालना है। इसमें अधिक समय लगेगा लेकिन गतिशील रूप से उत्पन्न लिंक का पता लग सकता है जो मानक स्थैतिक विश्लेषण से छूट सकते हैं (Playwright स्थापित होना आवश्यक है)। | | -ro | --readable-only | यदि पास किया जाता है, तो लिंक खोजने से पहले HTML प्रतिक्रियाओं/फ़ाइलों से केवल मानव-पठनीय पाठ निकाला जाएगा BeautifulSoup का उपयोग करके। यह , , , और टैग की सामग्री को बाहर करता है। | | -ascii-only | | क्या लिंक और पैरामीटर केवल तभी जोड़े जाएंगे यदि उनमें केवल ASCII वर्ण हों। यह उपयोगी हो सकता है जब आप जानते हैं कि लक्ष्य में ASCII वर्णों का उपयोग होने की संभावना है और आपको किसी कारण से बाइनरी फ़ाइलों से बहुत सारे गलत सकारात्मक परिणाम मिलते हैं। | | -mtl | --max-time-limit | रुकने से पहले चलने का अधिकतम समय सीमा (मिनटों में) (डिफ़ॉल्ट: 0)। यदि 0 पास किया जाता है, तो कोई सीमा नहीं है। | | | --config | YML कॉन्फ़िग फ़ाइल का पथ। यदि पास नहीं किया जाता है, तो यह डिफ़ॉल्ट निर्देशिका में फ़ाइल खोजता है, आमतौर पर । | | -nwlpl | --no-wordlist-plurals | जब लक्ष्य-विशिष्ट शब्दसूची के लिए शब्द पाए जाते हैं, तो डिफ़ॉल्ट रूप से नए शब्द जोड़े जाते हैं यदि बहुवचन से एकवचन शब्द है, और इसके विपरीत। यदि यह तर्क उपयोग किया जाता है, तो यह प्रक्रिया नहीं की जाती है। | | -nwlpw | --no-wordlist-pathwords | डिफ़ॉल्ट रूप से, लिंक में पाए गए किसी भी पथ शब्द को लक्ष्य-विशिष्ट शब्दसूची के लिए संसाधित किया जाएगा। यदि यह तर्क उपयोग किया जाता है, तो उन्हें संसाधित नहीं किया जाएगा। | | -nwlpm | --no-wordlist-parameters | डिफ़ॉल्ट रूप से, लिंक में पाए गए किसी भी पैरामीटर को लक्ष्य-विशिष्ट शब्दसूची के लिए संसाधित किया जाएगा। यदि यह तर्क उपयोग किया जाता है, तो उन्हें संसाधित नहीं किया जाएगा। | | -nwlc | --no-wordlist-comments | डिफ़ॉल्ट रूप से, पृष्ठों में किसी भी टिप्पणी को लक्ष्य-विशिष्ट शब्दसूची के लिए संसाधित किया जाएगा। यदि यह तर्क उपयोग किया जाता है, तो उन्हें संसाधित नहीं किया जाएगा। | | -nwlia | --no-wordlist-imgalt | डिफ़ॉल्ट रूप से, किसी भी इमेज 'alt' विशेषता को लक्ष्य-विशिष्ट शब्दसूची के लिए संसाधित किया जाएगा। यदि यह तर्क उपयोग किया जाता है, तो उन्हें संसाधित नहीं किया जाएगा। | | -nwld | --no-wordlist-digits | लक्ष्य-विशिष्ट शब्दसूची से संख्यात्मक अंकों वाले किसी भी शब्द को बाहर करें। | | -nwll | --no-wordlist-lowercase | डिफ़ॉल्ट रूप से, किसी भी बड़े अक्षर वाले शब्द के साथ छोटे अक्षरों में भी शब्द जोड़ा जाएगा। यदि यह तर्क उपयोग किया जाता है, तो छोटे अक्षरों वाले शब्द नहीं जोड़े जाएंगे। | | -wlml | --wordlist-maxlen | लक्ष्य-विशिष्ट शब्दसूची में जोड़े जाने वाले शब्दों की अधिकतम लंबाई, बहुवचन को छोड़कर (डिफ़ॉल्ट: 0 - कोई सीमा नहीं) | | -swf | --stopwords-file | लक्ष्य-विशिष्ट शब्दसूची से शब्दों को बाहर करने के लिए उपयोग किए जाने वाले अतिरिक्त स्टॉप वर्ड्स की फ़ाइल (YML कॉन्फ़िग फ़ाइल में "stopWords" के अतिरिक्त)। स्टॉप वर्ड्स का उपयोग प्राकृतिक भाषा प्रसंस्करण में किया जाता है और विभिन्न पुस्तकालयों में विभिन्न सूचियाँ पाई जा सकती हैं। आप अपने लक्ष्य के आधार पर विभिन्न भाषाओं में शब्द जोड़ना चाह सकते हैं। | | -brt | --burpfile-remove-tags | जब के साथ पास किया गया इनपुट Burp फ़ाइल है, तो उपयोगकर्ता से इंटरैक्टिव रूप से पूछा जाता है कि क्या वे उस फ़ाइल से अनावश्यक टैग हटाना चाहते हैं (कभी-कभी Burp XML फ़ाइलों में समस्या होती है जिसे अनावश्यक टैग हटाकर हल किया जा सकता है जिससे फ़ाइल छोटी भी हो जाएगी)। यदि आप xnLinkFinder को स्क्रिप्ट में उपयोग कर रहे हैं, तो आप उपयोगकर्ता इनपुट के लिए नहीं रुकना चाहते हैं, इसलिए आप इस तर्क को या के साथ पास करके सेट कर सकते हैं। नोट: यह फ़ाइल में स्थायी परिवर्तन है | | -all | --all-tlds | सभी पाए गए लिंक वापस किए जाएंगे, भले ही TLD सामान्य न हो। इसके परिणामस्वरूप कई गलत सकारात्मक परिणाम हो सकते हैं जहां चर नाम आदि भी संभावित वास्तविक डोमेन हो सकते हैं। डिफ़ॉल्ट रूप से, केवल उन लिंक को वापस किया जाएगा जिनमें सामान्य TLDs ( में ) में से कोई TLD है। | | -cl | --content-length | क्रॉल करते समय प्रतिक्रिया का Content-Length दिखाएं। | | -nb | --no-banner | टूल बैनर छिपाएं। | | -v | --verbose | विस्तृत आउटपुट | | -vv | --vverbose | बढ़ा हुआ विस्तृत आउटपुट | | | --version | वर्तमान संस्करण संख्या दिखाएं। | | -h | --help | सहायता संदेश दिखाएं और बाहर जाएं |† निर्देशिका, बर्प XML फ़ाइल, ZAP फ़ाइल, कैडो CSV फ़ाइल, या HAR फ़ाइल के इनपुट के लिए प्रासंगिक नहीं

config.yml

config.yml फ़ाइल (आमतौर पर ~/.config/xnLinkFinder/ में) में वे कुंजियाँ हैं जिन्हें आप अपनी आवश्यकताओं के अनुसार अपडेट कर सकते हैं:

  • linkExclude - स्ट्रिंग्स की एक अल्पविराम से अलग की गई सूची (जैसे .css,.jpg,.jpeg आदि) जिसके विरुद्ध सभी लिंक की जाँच की जाती है। यदि किसी लिंक में इनमें से कोई भी स्ट्रिंग शामिल है, तो उसे आउटपुट से बाहर रखा जाएगा। यदि इनपुट कोई निर्देशिका है, तो फ़ाइल नामों की जाँच इस सूची के विरुद्ध की जाती है।
  • contentExclude - स्ट्रिंग्स की एक अल्पविराम से अलग की गई सूची (जैसे text/css,image/jpeg,image/jpg आदि) जिसके विरुद्ध सभी प्रतिक्रियाओं के Content-Type हेडर की जाँच की जाती है। इन सामग्री प्रकारों वाली किसी भी प्रतिक्रिया को बाहर रखा जाएगा और लिंक के लिए जाँच नहीं की जाएगी।
  • fileExtExclude - स्ट्रिंग्स की एक अल्पविराम से अलग की गई सूची (जैसे .zip,.gz,.tar आदि) जिसके विरुद्ध निर्देशिका मोड में सभी फ़ाइलों की जाँच की जाती है। यदि किसी फ़ाइल का वह एक्सटेंशन है, तो उसमें लिंक खोजे नहीं जाएँगे। साथ ही, सामान्य मोड में, यदि किसी प्रतिक्रिया में बहिष्करण की जाँच करने के लिए कोई सामग्री-प्रकार नहीं है, तो यह लिंक खोजने के लिए URL के अंत में इन एक्सटेंशन की जाँच करेगा।
  • regexFiles - पाइप वर्ण (जैसे php|php3|php5 आदि) द्वारा अलग किए गए फ़ाइल प्रकारों की एक सूची। इनका उपयोग लिंक फाइंडिंग रेगेक्स में किया जाता है जब ऐसी खोजें हों जो स्पष्ट लिंक नहीं हैं, लेकिन दिलचस्प फ़ाइल प्रकार हैं जिन्हें आप चुनना चाहते हैं। यदि आप इस सूची में जोड़ते हैं, तो सुनिश्चित करें कि सही रेगेक्स के लिए किसी भी बिंदु को एस्केप करें, उदाहरण के लिए

† यदि ये कॉन्फ़िग फ़ाइल में नहीं पाए जाते हैं, तो ये डिफ़ॉल्ट रूप से True हो जाएंगे

उदाहरण

किसी विशिष्ट लक्ष्य से लिंक खोजें - बुनियादी```

xnLinkFinder -i target.com -sf target.com

root@kitploit:~
### किसी विशिष्ट लक्ष्य से लिंक खोजें - विस्तृत

आदर्श रूप से, प्राथमिक डोमेन (स्कीमा सहित) के साथ स्कोप उपसर्ग (`-sp`) प्रदान करें, और परिणामों को केवल प्रासंगिक डोमेन तक फ़िल्टर करने के लिए एक स्कोप फ़िल्टर (`-sf`) प्रदान करें (यह एक फ़ाइल या इन-स्कोप डोमेन हो सकता है)। साथ ही, आप कुकीज़ और कस्टम हेडर पास कर सकते हैं ताकि यह सुनिश्चित हो सके कि आपको केवल अधिकृत उपयोगकर्ताओं के लिए उपलब्ध लिंक मिलें।
उपयोगकर्ता एजेंट (`-u desktop mobile`) निर्दिष्ट करने से पहले डेस्कटॉप उपयोगकर्ता एजेंट का उपयोग करके सभी लिंक खोजे जाएंगे, और फिर मोबाइल उपयोगकर्ता एजेंट का उपयोग करके पुनः प्रयास किया जाएगा। कुछ विशिष्ट एंडपॉइंट हो सकते हैं जो दिए गए उपयोगकर्ता एजेंट से संबंधित हैं। गहराई मान (`-d`) देने से पिछली गहराई की खोज में मिले लिंक पर अनुरोध भेजे जाते रहेंगे ताकि अधिक लिंक खोजे जा सकें।```
xnLinkFinder -i target.com -sp target_prefix.txt -sf target_scope.txt -spo -inc -vv -H 'Authorization: Bearer XXXXXXXXXXXXXX' -c 'SessionId=MYSESSIONID' -u desktop mobile -d 10

URL की सूची से लिंक खोजें - मूल

यदि आपके पास उदाहरण के लिए JS फ़ाइल URLs की एक फ़ाइल है, तो आप उनमें लिंक्स खोज सकते हैं:``` xnLinkFinder -i target_js.txt -sf target.com

root@kitploit:~
नोट: यदि किसी फ़ाइल की पहली पंक्ति `//` या `http` से शुरू होती है या वह डोमेन का प्रारूप है (जैसे `example.com`, `sub.example.co.uk`), तो उस फ़ाइल को URL की सूची मान लिया जाता है, अन्यथा इसे उस फ़ाइल के रूप में माना जाता है जिसकी सामग्री में खोज की जानी है (जब तक कि वह Burp, Zap, Caido, या HAR फ़ाइल न हो)।

### किसी फ़ाइल की सामग्री से लिंक खोजें - बुनियादी

उदाहरण के लिए, यदि आपके पास कोई सहेजा गया प्रतिक्रिया है, तो आप उसमें लिंक खोज सकते हैं:```
xnLinkFinder -i response.txt -sf target.com

नोट: एक पास की गई फ़ाइल को URL की सूची माना जाता है यदि पहली पंक्ति // या http से शुरू होती है या डोमेन के प्रारूप में है (जैसे example.com, sub.example.co.uk), अन्यथा इसे उस फ़ाइल के रूप में माना जाता है जिसकी सामग्री खोजी जानी है (जब तक कि वह Burp, Zap, Caido, या HAR फ़ाइल न हो)।

किसी निर्देशिका में फ़ाइलों से लिंक खोजें - मूल

यदि आपके पास फ़ाइलें हैं, जैसे JS फ़ाइलें, HTTP प्रतिक्रियाएँ, आदि, तो आप उनमें लिंक खोज सकते हैं:``` xnLinkFinder -i ~/.config/waymore/results/target.com

root@kitploit:~
NOTE: उप-निर्देशिकाओं की भी जाँच की जाती है। फ़ाइलों को एक निश्चित आकार से अधिक छोड़ने के लिए `-mfs` विकल्प निर्दिष्ट किया जा सकता है।

### Burp प्रोजेक्ट से लिंक खोजें - बुनियादी

Burp में, आप जिन आइटम को खोजना चाहते हैं, उन्हें चुनें। उदाहरण के लिए, स्कोप को हाइलाइट करके, राइट-क्लिक करें और `Save selected items` का चयन करें। सुनिश्चित करें कि सेव करने से पहले `base64-encode requests and responses` विकल्प चेक किया गया हो।
फ़ाइल से सभी लिंक प्राप्त करने के लिए (बहुत बड़ी फ़ाइलों के साथ भी, आप सभी लिंक प्राप्त करने में सक्षम होंगे):```
xnLinkFinder -i target_burp.xml

नोट: xnLinkFinder मान लेता है कि यदि -i के साथ पास की गई फ़ाइल की पहली पंक्ति <?xml से शुरू होती है, तो आप Burp फ़ाइल को प्रोसेस करने का प्रयास कर रहे हैं।

Burp प्रोजेक्ट से लिंक खोजें - विस्तृत

आदर्श रूप से, प्राथमिक डोमेन (स्कीमा सहित) के साथ स्कोप प्रीफ़िक्स (-sp) और केवल प्रासंगिक डोमेन पर परिणामों को फ़िल्टर करने के लिए स्कोप फ़िल्टर (-sf) प्रदान करें।``` xnLinkFinder -i target_burp.xml -o target_burp.txt -sp https://www.target.com -sf target.* -ow -spo -inc -vv

root@kitploit:~
### ZAP प्रोजेक्ट से लिंक खोजें - बुनियादी

ZAP में, उदाहरण के लिए History को हाइलाइट करके, मेनू `Export` पर क्लिक करके और `Save Messages...` (या पुराने संस्करणों में `Export Messages to File...`) चुनकर आप जिन आइटम्स को खोजना चाहते हैं उन्हें चुनें। इससे आप उन सभी अनुरोधों और प्रतिक्रियाओं की एक ASCII टेक्स्ट फ़ाइल सहेज सकेंगे जिन्हें आप खोजना चाहते हैं।
फ़ाइल से सभी लिंक प्राप्त करने के लिए (बड़ी फ़ाइलों के साथ भी, आप सभी लिंक प्राप्त करने में सक्षम होंगे):```
xnLinkFinder -i target_zap.txt

नोट: xnLinkFinder यह धारणा बनाता है कि यदि -i के साथ पास की गई फ़ाइल की पहली पंक्ति प्रारूप में है ==== 99 ========== या ===99 ========== उदाहरण के लिए, तो आप एक ZAP ASCII टेक्स्ट फ़ाइल को प्रोसेस करने का प्रयास कर रहे हैं।

Cadio निर्यात CSV फ़ाइल से लिंक खोजें - बुनियादी

Caido में, History अनुभाग पर जाएं और Export विकल्प चुनें।

यदि आप Caido Pro या Enterprise संस्करण का उपयोग कर रहे हैं, तो Export current rows विकल्प चुनें और As CSV चुनें। Exports अनुभाग पर जाएं और CSV फ़ाइल डाउनलोड करें। फिर इनपुट के रूप में पास करें:``` xnLinkFinder -i 2023-03-18-010332_csv_requests.csv

root@kitploit:~
अगर आप Caido Community संस्करण का उपयोग कर रहे हैं, तो आपको **Export all** विकल्प चुनना होगा और **As CSV** चुनना होगा। **Exports** अनुभाग पर जाएं और CSV फ़ाइल डाउनलोड करें। चूंकि आपके पास पूरा इतिहास है, आप CSV फ़ाइल से जो भी प्रासंगिक नहीं है उसे हटाना चाहेंगे। नीचे दिए गए उदाहरण का उपयोग करें, जहां `redbull` आप जिस लक्ष्य को देख रहे हैं उसके डोमेन का मुख्य भाग है।```
cat 2023-03-18-010332_csv_requests.csv | grep -E '^id|^[0-9]+,[^,]*redbull' > caido_redbull.csv
xnLinkFinder -i caido_redbull.csv

नोट: xnLinkFinder यह मान लेता है कि यदि -i के साथ पास की गई फ़ाइल की पहली पंक्ति id,host,method प्रारूप में है, तो आप एक Caido निर्यात CSV फ़ाइल को प्रोसेस करने का प्रयास कर रहे हैं।

HAR (HTTP Archive) JSON फ़ाइल से लिंक खोजें - बुनियादी

HAR फ़ाइल एक JSON फ़ाइल है जिसमें HTTP अनुरोधों और प्रतिक्रियाओं की एक सूची होती है। यह HTTP ट्रैफ़िक को संग्रहीत करने का एक सामान्य प्रारूप है। आप अधिकांश वेब ब्राउज़रों से, सामान्यतः Developer Tools में Network टैब से, HAR फ़ाइल निर्यात कर सकते हैं। फ़ाइल को इनपुट के रूप में पास करें:``` xnLinkFinder -i browser.har

root@kitploit:~
NOTE: xnLinkFinder यह मानता है कि यदि फ़ाइल का नाम `.har` पर समाप्त होता है या फ़ाइल की पहली पंक्ति में `"log"` है और `{` से शुरू होता है, तो आप एक HAR फ़ाइल को प्रोसेस करने का प्रयास कर रहे हैं।

### Waymore परिणाम निर्देशिका से लिंक खोजें

The [waymore](https://github.com/xnl-h4ck3r/waymore) टूल का उपयोग विभिन्न तृतीय-पक्ष API से URL प्राप्त करने और विभिन्न स्रोतों से संग्रहीत प्रतिक्रियाएँ डाउनलोड करने के लिए किया जा सकता है। `xnLinKFinder` को एक waymore परिणाम निर्देशिका पास करने से संग्रहीत प्रतिक्रियाओं की सामग्री खोजी जाएगी, और `waymore.txt` से URL और `waymore_index.txt` (या पुराने संस्करणों के लिए `index.txt`) से संग्रहीत URL का अनुरोध किया जाएगा और उन प्रतिक्रियाओं से अधिक लिंक प्राप्त होंगे। यदि `-d`/`--depth` शून्य है, तो `waymore_index.txt` से URL केवल लौटाए जाएँगे, लेकिन अनुरोध नहीं किए जाएँगे।```
xnLinkFinder -i ~/Tools/waymore/results/target.com

नोट: यह एक सामान्य निर्देशिका के रूप में पास किया जाता है, लेकिन xnLinkFinder यह निर्धारित करेगा कि यह एक waymore परिणाम निर्देशिका है और तदनुसार प्रक्रिया करेगा। यह URLs फ़ाइल के डिफ़ॉल्ट नामकरण सम्मेलन पर निर्भर करता है कि फ़ाइल का नाम waymore.txt है और वह फ़ाइल संग्रहीत फ़ाइलों के समान निर्देशिका में है (जो डिफ़ॉल्ट रूप से ऐसा ही है)।

अन्य उपकरणों में पाइपिंग

आप xnLinkFinder को अन्य उपकरणों में पाइप कर सकते हैं। कोई भी त्रुटि stderr पर भेजी जाती है और कोई भी लिंक stdout पर भेजा जाता है। आउटपुट फ़ाइल अभी भी बनाई जाती है, इसके अलावा लिंक अगले प्रोग्राम में पाइप किए जाते हैं। हालांकि, संभावित पैरामीटर अगले प्रोग्राम में पाइप नहीं किए जाते हैं, लेकिन वे अभी भी फ़ाइल में लिखे जाते हैं। उदाहरण के लिए:

root@kitploit:~
xnlinkfinder -i example.com -o results.html | tee output.txt

xnLinkFinder -i redbull.com -sp https://redbull.com -sf rebbull.* -d 3 | unfurl keys | sort -u

root@kitploit:~
आप इनपुट को `-i` के बजाय `stdin` के माध्यम से भी पास कर सकते हैं।```
cat redbull_subs.txt | xnLinkFinder -sp https://redbull.com -sf rebbull.* -d 3

नोट: आप Burp, ZAP, Caido, या HAR फ़ाइल को पाइप नहीं कर सकते, इन्हें -i का उपयोग करके पास किया जाना चाहिए।

सिफारिशें और नोट्स

  • हमेशा Scope Prefix argument -sp का उपयोग करें। यह एक स्कोप डोमेन हो सकता है, या एक फ़ाइल जिसमें कई स्कोप डोमेन हों। नीचे उपयोग किए गए प्रारूप के उदाहरण दिए गए हैं (कोई पथ शामिल नहीं किया जाना चाहिए, और कोई वाइल्डकार्ड का उपयोग नहीं किया गया है। स्कीमा वैकल्पिक है, लेकिन डिफ़ॉल्ट http होगा): ``` http://www.target.com https://target-payments.com https://static.target-cdn.com
    root@kitploit:~

यदि कोई लिंक बिना डोमेन के मिलता है, जैसे /path/to/example.js, तो -sp http://www.target.com पास करने से आउटपुट http://www.target.com/path/to/example.js होगा और यदि Depth (-d) >1 है, तो उस URL पर अधिक लिंक खोजने के लिए एक अनुरोध किया जा सकेगा।

  • यदि आप -sp का उपयोग करते हैं लेकिन फिर भी मूल लिंक /path/to/example.js (बिना डोमेन के) को अतिरिक्त रूप से आउटपुट में वापस करना चाहते हैं, तो -spo तर्क पास करें।
  • हमेशा स्कोप फ़िल्टर तर्क -sf का उपयोग करें। यह सुनिश्चित करेगा कि आउटपुट में केवल प्रासंगिक डोमेन लौटाए जाएं, और अधिक महत्वपूर्ण बात यह है कि यदि Depth (-d) >1 है, तो स्कोप से बाहर के लक्ष्यों पर लिंक या पैरामीटर खोजे नहीं जाएंगे। यह एक स्कोप डोमेन हो सकता है, या कई स्कोप डोमेन वाली एक फ़ाइल हो सकती है। नीचे उपयोग किए गए प्रारूप के उदाहरण दिए गए हैं (कोई स्कीमा या पथ शामिल नहीं होना चाहिए): ``` target.* target-payments.com static.target-cdn.com
    root@kitploit:~

THIS IS FOR FILTERING THE LINKS DOMAIN ONLY.

  • If you want to filter the final output in any way, use -ra. It's always a good idea to use https://regex101.com/ to check your Regex expression is going to do what you expect.
  • Use the -v option to have a better idea of what the tool is doing.
  • If you have problems, use the -vv option which may show errors that are occurring, which can possibly be resolved, or you can raise as an issue on github.
  • Pass cookies (-c), headers (-H) and regex (-ra) values within single quotes, e.g. -ra '/api/v[0-9]\.[0-9]\*'
  • Set the -o option to give a specific output file name for Links, rather than the default of output.txt. If you plan on running a large depth of searches, start with 2 with option -v to check what is being returned. Then you can increase the Depth, and the new output will be appended to the existing file, unless you pass -ow.
  • Set the -op option to give a specific output file name for Potential Parameters, rather than the default of . Any output will be appended to the existing file, unless you pass .

Issues

If you come across any problems at all, or have ideas for improvements, please feel free to raise an issue on Github. If there is a problem, it will be useful if you can provide the exact command you ran and a detailed description of the problem. If possible, run with -vv to reproduce the problem and let me know about any error messages that are given.

TODO

  • Add specific regex check for Requests when a proxy file is passed as input. Currently it uses the same regex as Requests, but this is not ideal.
  • Get Cookie names to add to the list of potential parameters.

Example output

Active link finding for a domain:

...

Piped input and output:

Good luck and good hunting! If you really love the tool (or any others), or they helped you find an awesome bounty, consider BUYING ME A COFFEE! ☕ (I could use the caffeine!)

🤘 /XNL-h4ck3r

Buy Me a Coffee at ko-fi.com

टूल डाउनलोड करें
cli
/
-sp
/
-spkf
'name1=value1; name2=value2;'
'Header1: value1; Header2: value2;'
/api/v[0-9]\.[0-9]\*
-sp
--scope-prefix
config.yml
careers,forum
LINK-URL [ORIGIN-URL]
(PREFIXED)
./
../
-i
-u desktop mobile
desktop
mobile
set-top-boxes
game-console
mobile-apple
mobile-android
mobile-windows
mobile
-u
--user-agent
http://127.0.0.1:8080
http://user:[email protected]:8000
socks5://host:port
<script>
<style>
<noscript>
<template>
config.yml
~/.config/xnLinkFinder
नोट: यदि YAML कॉन्फ़िग मान respParamPathWords True है तो यह तर्क तब तक प्रभावी नहीं होगा जब तक कि -nwlpm/--no-wordlist-parameters भी पास न किया जाए।
-i
true
false
config.yml
commonTLDs
js\.map
  • respParamLinksFound † - प्रतिक्रियाओं में मिले लिंक से संभावित पैरामीटर प्राप्त करने हेतु: True या False
  • respParamPathWords † - प्राप्त लिंक में पथ शब्दों को संभावित पैरामीटर के रूप में जोड़ने हेतु: True या False
  • respParamJSON † - यदि प्रतिक्रिया का MIME प्रकार JSON है, तो JSON कुंजी मानों को संभावित पैरामीटर के रूप में जोड़ने हेतु: True या False
  • respParamJSVars † - क्या var, let या const के साथ सेट किए गए जावास्क्रिप्ट चर को संभावित पैरामीटर के रूप में जोड़ा जाए: True या False
  • respParamXML † - यदि प्रतिक्रिया का MIME प्रकार XML है, तो XML विशेषता मानों को संभावित पैरामीटर के रूप में जोड़ने हेतु: True या False
  • respParamInputField † - यदि प्रतिक्रिया का MIME प्रकार HTML या JAVASCRIPT है (क्योंकि HTML में HTML बनाया जा सकता है), तो किसी भी INPUT (या TEXTAREA/SELECT/BUTTON) फ़ील्ड के NAME और ID विशेषताओं को संभावित पैरामीटर के रूप में जोड़ने हेतु: True या False
  • respParamMetaName † - यदि प्रतिक्रिया का MIME प्रकार HTML है, तो किसी भी META टैग की NAME विशेषताओं को संभावित पैरामीटर के रूप में जोड़ने हेतु: True या False
  • wordsContentTypes - स्ट्रिंग्स की एक अल्पविराम से अलग की गई सूची (जैसे text/html,text/plain) यह निर्दिष्ट करने के लिए कि कौन से प्रतिक्रिया सामग्री प्रकारों में लक्ष्य-विशिष्ट शब्दसूची में जाने वाले शब्दों की खोज की जाएगी।
  • stopWords - स्ट्रिंग्स की एक अल्पविराम से अलग की गई सूची (जैसे then,this,that) यह निर्दिष्ट करने के लिए कि कौन से शब्द लक्ष्य-विशिष्ट शब्दसूची से बाहर रखे गए हैं। यह डिफ़ॉल्ट सूची शुरू में अंग्रेजी निर्धारकों, समन्वय संयोजकों और पूर्वसर्गों के साथ-साथ स्किकिट-लर्न, एक पायथन मशीन लर्निंग लाइब्रेरी, से स्टॉप शब्दों की सूची से बनी है।
  • commonTLDs - सबसे सामान्य TLDs की एक अल्पविराम से अलग की गई सूची। जब तक -all/--all-tlds तर्क पारित नहीं किया जाता है, केवल उन डोमेन वाले लिंक वापस किए जाते हैं जिनके TLD इस सूची में हैं।
  • parameters.txt
    -ow
  • If using a high Depth (-d) be wary of some sites using dynamic links so will it will just keep finding new ones. If no new links are being found, then xnlLinkFinder will stop searching. Providing the Stop flags (s429, s403, sTO, sCE) should also be considered.
  • If you are finding a large number of links, especially if the Depth (-d value) is high, and have limited resources, the program will stop when it reaches the memory Threshold (-m) value and end gracefully with data intact before getting killed.
  • If you decide to cancel xnLinkFinder (using Ctrl-C) in the middle of running, be patient and any gathered data will be saved before ending gracefully.
  • Using the -orig option will show the URL where the link was found. This can mean you have duplicate links in the output if the same link was found on multiple sources, but it will suffixed with the origin URL in square brackets.
  • When making requests, xnLinkFinder will use a random User-Agent from the current group, which defaults to desktop (unless the -uc/--user-agent-custom argument is used). If you have a target that could have different links for different user agent groups, then specify -u desktop mobile for example (separate with a space). The mobile user agent option is an combination of mobile-apple, mobile-android and mobile-windows. Possible values are desktop, mobile, set-top-boxes and game-console.
  • When -i has been set to a directory, the contents of the files in the root of that directory will be searched for links. Files in sub-directories are not searched. Any files that are over the size set by -mfs (default: 500 MB) will be skipped.
  • When using the -replay-proxy option, sometimes requests can take longer. If you start seeing more Request Timeout errors (you'll see errors if you use -v or -vv options) then consider using -t to raise the timeout limit.
  • If you know a target will only have ASCII characters in links and parameters then consider passing -ascii-only. This can eliminate a number of false positives that can sometimes get returned from binary data.
  • If you pass a waymore results directory, it is worth passing the -d/--depth argument to search any extra links found from URL requests and also the -u/--user-agent if you think there could be different content found, e.g. -u desktop mobile.
  • Always pass the -owl/--output-wordlist filename to save the target specific wordlist. This list can be very useful when fuzzing a target.
  • The words for the target specific wordlist are taken from the following sources (any of 3 characters or more), but are also determined by the other wordlist arguments (see Usage section above):
    • All responses with certain conditions:
      • Only responses with content types specific in the YML config wordsContentTypes section are searched. The defaults are text/html,application/xml,application/json,text/plain
      • Words from <meta> tag content where:
        • Property is og:title or og:description
        • Name is description,keywords,twitter:title or twitter:description
      • Words from HTML comments
      • Words from alt attribute of `` tags
      • Words from the rest of the inner HTML of the page, excluding tags <style>, <script> and <link>
    • Words found from path words in links found.
    • Parameters found from responses and links.
    • All valid words will also have the singular/plural version added to the wordlist if possible.
    • If the original word has any upper case characters, a lower case version will also be added
  • If the default "Stop Words" for a target specific wordlist are not good enough, either change in the YML config file, or provide additional stop words using the -swf/--stopwords-file option. You may want to include stop words in another language, depending on the target. Stop words are used in Natural Language Processing (NLP) and many stop word lists can be found online to suit different needs.