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

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

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

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

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

श्रेणियाँ

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

urless

बड़ी URL सूचियों को फ़िल्टर और डीडुप्लिकेट करें — स्टैटिक एक्सटेंशन, अवांछित कीवर्ड, IDs, भाषा संस्करण और पैरामीटर हटाकर, वेब रिकॉनिसेंस के लिए स्वच्छ एंडपॉइंट सेट तैयार करें।

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

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

सभी देखें →

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

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

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

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

परिचय - v2.7

यह URL सूचियों को डी-क्लटर (de-clutter) करने के लिए उपयोग किया जाने वाला एक टूल है। शुरुआती बिंदु के रूप में, मैंने Somdev Sangwan द्वारा बनाए गए शानदार टूल uro को आधार बनाया। लेकिन मैं कुछ चीज़ें बदलना चाहता था, कुछ सुधार करना चाहता था (जैसे GUIDs से निपटना) और इसे और अधिक अनुकूलन योग्य बनाना चाहता था।

इंस्टॉलेशन

urless Python 3 को सपोर्ट करता है।

urless को डिफ़ॉल्ट (ग्लोबल) python वातावरण में इंस्टॉल करें।

root@kitploit:~
pip install urless

या

root@kitploit:~
pip install git+https://github.com/xnl-h4ck3r/urless.git -v

आप इसे इसके साथ अपग्रेड कर सकते हैं:

root@kitploit:~
pip install --upgrade urless

pipx

pipx का उपयोग करके पृथक (isolated) python वातावरण में त्वरित सेटअप:

root@kitploit:~
pipx install git+https://github.com/xnl-h4ck3r/urless.git

उपयोग

यह वास्तव में क्या करता है?

आप मूल रूप से URL की एक सूची इनपुट करते हैं (किसी फ़ाइल से, या STDIN से पाइप करके), और एक डी-क्लटर की गई फ़ाइल या URLs प्राप्त करते हैं। लेकिन वे किस तरह से डी-क्लटर की जाती हैं? मैं इसे नीचे समझाऊँगा, लेकिन पहले यहाँ कुछ शब्द दिए गए हैं जिनका उपयोग किया जाएगा:

  • FILTER-EXTENSIONS: यह उन एक्सटेंशन की सूची को संदर्भित करता है जिन्हें -fe के साथ पास किया जा सकता है, config.yml में FILTER_EXTENSIONS के साथ निर्दिष्ट किया जा सकता है, या यदि इनमें से कोई भी मौजूद नहीं है, तो .css,.ico,.jpg,.jpeg,.png,.bmp,.svg,.img,.gif,.mp4,.flv,.ogv,.webm,.webp,.mov,.mp3,.m4a,.m4p,.scss,.tif,.tiff,.ttf,.otf,.woff,.woff2,.bmp,.ico,.eot,.htc,.rtf,.swf,.image की एक डिफ़ॉल्ट सूची।
  • FILTER-KEYWORDS: यह उन कीवर्ड की सूची को संदर्भित करता है जिन्हें -fk के साथ पास किया जा सकता है, config.yml में FILTER_KEYWORDS के साथ निर्दिष्ट किया जा सकता है, या यदि इनमें से कोई भी मौजूद नहीं है, तो blog,article,news,bootstrap,jquery,captcha,node_modules की एक डिफ़ॉल्ट सूची।
  • LANGUAGE: यह भाषा कोड की उस सूची को संदर्भित करता है जिसे config.yml में LANGUAGE के साथ निर्दिष्ट किया जा सकता है, या यदि यह मौजूद नहीं है, तो सबसे सामान्य कोड en,en-us,en-gb,fr,de,pl,nl,fi,sv,it,es,pt,ru,pt-br,es-mx,zh-tw,js.ko की एक डिफ़ॉल्ट सूची।

यहाँ बताया गया है कि क्या होता है:

  • यदि किसी URL में पोर्ट 80 या 443 स्पष्ट रूप से दिया गया है, तो इसे URL से हटा दें (जैसे http://example.com:80/test -> http://example.com/test)
  • यदि URL में कोई FILTER-EXTENSIONS है, तो इसे आउटपुट से हटा दिया जाएगा।
  • यदि URL में कोई पैरामीटर नहीं है या -dp/--disregard-params तर्क पास किया गया था:
    • यदि URL में FILTER-KEYWORDS या UNWANTED-CONTENT है, तो इसे हटा दिया जाएगा।
    • यदि URL क्वेरी स्ट्रिंग में config REMOVE_PARAMS में निर्दिष्ट अवांछित पैरामीटर हैं (या तर्क -rp/--remove-params के साथ ओवरराइड किए गए हैं), तो प्रोसेसिंग से पहले उन्हें सभी URLs से हटा दिया जाएगा।
    • यदि -rcid/--regex-custom-id पास किया जाता है और URL पाथ में कस्टम ID है, तो कस्टम ID regex का केवल एक मैच शामिल किया जाएगा यदि कई URLs हैं जहाँ यही एकमात्र अंतर है।
    • यदि URL पाथ में GUID है, तो केवल एक GUID शामिल किया जाएगा यदि कई URLs हैं जहाँ GUID ही एकमात्र अंतर है।
    • यदि URL पाथ में Integer ID है, तो केवल एक Integer ID शामिल किया जाएगा यदि कई URLs हैं जहाँ Integer ID ही एकमात्र अंतर है।
    • यदि -lang तर्क पास किया जाता है और URL में भाषा कोड है (जैसे en-gb), तो केवल एक भाषा कोड शामिल किया जाएगा यदि कई URLs हैं जहाँ भाषा कोड अलग है।

उदाहरण

मूल उपयोग

root@kitploit:~
cat target_urls.txt | urless

या

root@kitploit:~
urless -i target_urls.txt

आउटपुट कैप्चर करें

root@kitploit:~
cat target_urls.txt | urless > output.txt

या

root@kitploit:~
urless -i target_urls.txt -o output.txt

config.yml

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

  • FILTER_KEYWORDS - अल्पविराम से अलग की गई कीवर्ड की सूची (जैसे blog,article,news आदि) जिनके विरुद्ध URLs को कुछ परिस्थितियों में जाँचा जाता है।
  • FILTER_EXTENSIONS - अल्पविराम से अलग की गई फ़ाइल एक्सटेंशन की सूची (जैसे .css,.jpg,.jpeg आदि) जिनके विरुद्ध सभी URLs को जाँचा जाता है। यदि किसी URL में इनमें से कोई भी स्ट्रिंग शामिल है तो इसे आउटपुट से बाहर कर दिया जाएगा।
  • LANGUAGE - अल्पविराम से अलग की गई भाषा कोड की सूची (जैसे en-gb,fr,nl आदि) जिनके विरुद्ध सभी URLs को तब जाँचा जाता है जब -lang तर्क पास किया जाता है। यदि विभिन्न भाषा कोड वाले कई URLs हैं, तो URL का केवल एक संस्करण आउटपुट होगा।
  • REMOVE_PARAMS - अल्पविराम से अलग की गई केस-सेंसिटिव पैरामीटर नामों की सूची (जैसे cachebuster,cacheBuster) जिन्हें प्रोसेसिंग से पहले सभी URLs से हटा दिया जाएगा।

कस्टम Regex

वर्तमान में पाथ भाग के Globally Unique ID (GUID) और Integer ID होने के लिए स्वचालित regex जाँच होती है, लेकिन -rcid / --regex-custom-id तर्क आपको कस्टम ID की पहचान करने के लिए एक रेगुलर एक्सप्रेशन प्रदान करने की सुविधा देता है। उदाहरण के लिए, यदि किसी टारगेट का एक विशिष्ट ID फ़ॉर्मेट है (जो GUID या Integer नहीं है) तो आप उसके लिए regex एक्सप्रेशन निर्दिष्ट कर सकते हैं, और फिर यदि URL का शेष भाग समान है तो उनमें से केवल एक ही आउटपुट में लौटाया जाएगा। उदाहरण के लिए:

  • मान लें कि टारगेट में U-65241X जैसे फ़ॉर्मेट में उपयोगकर्ता ID है
  • और निम्नलिखित जैसे कई URLs हैं:
    root@kitploit:~
    https://target.com/blah/U-61723A/settings
    https://target.com/blah/U-63352B/settings
    https://target.com/blah/U-61351A/profile
    https://target.com/blah/U-61723A/settings
    https://target.com/blah/U-64135C/profile
    
  • आप urless को कॉल कर सकते हैं और -rcid 'U-[0-9]{5}[A-Z]' पास कर सकते हैं, तो आउटपुट होगा:
    root@kitploit:~
    https://target.com/blah/U-61723A/settings
    https://target.com/blah/U-64135C/profile
    

महत्वपूर्ण REGEX नोट्स:

  • सही regex एक्सप्रेशन लिखना कठिन हो सकता है, और यदि यह सही नहीं है, तो आपको अप्रत्याशित और गलत आउटपुट मिल सकता है।
  • -rcid तर्क में पास करते समय अपने regex एक्सप्रेशन को हमेशा सिंगल कोट्स में बंद करें।
  • GUID या Integer ID के लिए कस्टम regex जोड़ने की आवश्यकता नहीं है - इन्हें पहले ही निपटा लिया गया है।
  • regex एक्सप्रेशन को पाथ के पूरे भाग को हाइलाइट करना चाहिए। इसलिए, यदि आपका regex केवल पाथ की शुरुआत की पहचान करता है, तो अपने regex के अंत में [^(\?|\/|#|$)]* जोड़ें जिसका अर्थ होगा पाथ भाग के अंत तक के अन्य सभी अक्षर।
  • आप अपने regex की शुरुआत में ^ और अंत में $ जोड़ सकते हैं ताकि यह सुनिश्चित हो सके कि यह स्लैश के बीच पाथ के पूरे भाग को दर्शाता है। हालाँकि, यदि इन्हें छोड़ दिया जाता है तो ये आपके लिए जोड़ दिए जाएँगे।
  • सुनिश्चित करें कि regex केवल उन्हीं अनुभागों की पहचान करता है जिनमें आपकी रुचि है, अन्यथा आपको अप्रत्याशित परिणाम मिल सकते हैं। अपने regex का परीक्षण करने के लिए, आप अपनी इनपुट फ़ाइल ले सकते हैं और उदाहरण के लिए cat input.txt | grep -E 'U-[0-9]{5}[A-Z]' कर सकते हैं, और देख सकते हैं कि आपका एक्सप्रेशन सही दिखता है या नहीं (इसे केवल वही हाइलाइट करना चाहिए जिसमें आपकी रुचि है, और पाथ के उस पूरे भाग को हाइलाइट करना चाहिए जो कस्टम ID है)।
  • आप Regex101 का उपयोग करके भी परीक्षण कर सकते हैं, यह जाँचने के लिए TEST STRING अनुभाग में नमूना URLs दर्ज करें कि यह सही है या नहीं। सुनिश्चित करें कि REGEX FLAGS global और multiline चयनित हैं।
  • ऐसे मामले हो सकते हैं जहाँ आप ऐसा regex प्रदान नहीं कर सकते जो अन्य मानों को समान माने बिना कस्टम ID की सही पहचान करे। उदाहरण के लिए, यदि https://target.com/blah/xnl/settings जैसे URLs हैं जहाँ xnl एक उपयोगकर्ता नाम है, तो आप उपयोगकर्ता नाम के लिए regex नहीं बना पाएँगे क्योंकि यह अन्य संभावित पाथ मानों से अलग करने के लिए पर्याप्त अद्वितीय फ़ॉर्मेट नहीं है।

समस्याएँ

यदि आपको कोई भी समस्या आती है, या सुधार के विचार हैं, तो कृपया बेझिझक Github पर issue दर्ज करें। यदि कोई समस्या है, तो यह उपयोगी होगा यदि आप चलाया गया सटीक कमांड और समस्या का विस्तृत विवरण प्रदान कर सकें। यदि संभव हो, तो समस्या को दोहराने के लिए -v के साथ चलाएँ और मुझे दिए गए किसी भी त्रुटि संदेश के बारे में बताएँ।

TODO

कोई नहीं - कोई भी संवर्द्धन सुझाने के लिए Github issue दर्ज करने में संकोच न करें।

और अंत में...

शुभकामनाएँ और शुभ खोज! यदि आप वास्तव में इस टूल (या किसी अन्य) को पसंद करते हैं, या उन्होंने आपको एक शानदार bounty खोजने में मदद की है, तो मुझे एक कॉफ़ी खरीदने पर विचार करें! ☕ (मुझे कैफीन की ज़रूरत पड़ सकती है!)

🤘 /XNL-h4ck3r

ko-fi.com पर मुझे कॉफ़ी खरीदें

टूल डाउनलोड करें
तर्कलंबा तर्कविवरण
-i--inputडी-क्लटर करने के लिए URL की एक फ़ाइल।
-o--outputआउटपुट फ़ाइल जिसमें डी-क्लटर की गई URL सूची होगी (डिफ़ॉल्ट: output.txt)। यदि किसी अन्य प्रोग्राम में पाइप किया जाए, तो आउटपुट STDOUT पर लिखा जाएगा।
-fk--filter-keywordsलिंक्स को बाहर करने के लिए कीवर्ड की अल्पविराम से अलग की गई सूची (यदि कोई पैरामीटर न हों)। यह config.yml में निर्दिष्ट FILTER_KEYWORDS सूची को ओवरराइड करेगा।
-fe--filter-extensionsबाहर करने के लिए फ़ाइल एक्सटेंशन की अल्पविराम से अलग की गई सूची। यह config.yml में निर्दिष्ट FILTER_EXTENSIONS सूची को ओवरराइड करेगा।
-rp--remove-paramsसभी URL से हटाने के लिए केस-सेंसिटिव पैरामीटर की अल्पविराम से अलग की गई सूची। यह config.yml में निर्दिष्ट REMOVE_PARAMS सूची को ओवरराइड करेगा। यह उदाहरण के लिए cache buster पैरामीटर हटाने में उपयोगी हो सकता है।**
-ks--keep-slashइनपुट में URL के अंत में मौजूद ट्रेलिंग स्लैश को नहीं हटाया जाएगा। इसलिए आउटपुट में समान URL हो सकते हैं, एक ट्रेलिंग स्लैश के साथ और एक बिना।
-khw--keep-human-writtenडिफ़ॉल्ट रूप से, ऐसे किसी भी URL को हटा दिया जाता है जिसके पाथ भाग में 3 से अधिक डैश (-) हों, क्योंकि यह माना जाता है कि यह मानव-लिखित सामग्री (जैसे ब्लॉग पोस्ट) है, और दिलचस्प नहीं है। यह तर्क पास करने पर उन्हें आउटपुट में रखा जाएगा।
-kym--keep-yyyymmडिफ़ॉल्ट रूप से, ऐसे किसी भी URL को हटा दिया जाता है जिसके पाथ में /YYYY/MM (जहाँ YYYY वर्ष और MM माह है) होता है, क्योंकि यह माना जाता है कि यह ब्लॉग/समाचार सामग्री है, और दिलचस्प नहीं है। यह तर्क पास करने पर उन्हें आउटपुट में रखा जाएगा।
-rcid--regex-custom-idसावधानी से उपयोग करें! आपके टारगेट द्वारा उपयोग किए जाने वाले कस्टम ID के लिए Regex। मान को कोट्स में पास करना सुनिश्चित करें। इसके बारे में अधिक जानकारी के लिए नीचे दिया गया अनुभाग देखें।
-iq--ignore-querystringक्वेरी स्ट्रिंग (URL फ़्रैगमेंट्स # सहित) हटाएं ताकि आउटपुट में केवल अद्वितीय पाथ हों।
-fnp--fragment-not-paramURL फ़्रैगमेंट्स # को पैरामीटर की तरह न मानें, उदाहरण के लिए यदि किसी लिंक में फ़िल्टर कीवर्ड और फ़्रैगमेंट (या पैरामीटर) है तो लिंक आमतौर पर रखा जाता है, लेकिन यदि यह तर्क पास किया जाता है और लिंक में फ़िल्टर शब्द और फ़्रैगमेंट है, तो लिंक हटा दिया जाएगा। साथ ही, यदि यह तर्क पास किया जाता है और -iq / --ignore-querystring उपयोग किया जाता है, तो लिंक में कोई क्वेरी स्ट्रिंग न होने पर फ़्रैगमेंट को लिंक से नहीं हटाया जाएगा।
-lang--languageयदि पास किया जाता है और पाथ के भाग के रूप में विभिन्न भाषा कोड वाले कई URL हैं, तो URL का केवल एक संस्करण आउटपुट होगा। कोड config.yml के LANGUAGE अनुभाग में निर्दिष्ट हैं।
-c--configYML कॉन्फ़िग फ़ाइल का पाथ। यदि पास नहीं किया जाता है, तो यह डिफ़ॉल्ट कॉन्फ़िग निर्देशिका, जैसे ~/.config/urless/, में config.yml फ़ाइल खोजता है।
-dp--disregard-paramsयदि URLs में पैरामीटर हैं तो कुछ फ़िल्टरिंग नहीं की जाती है, क्योंकि डिफ़ॉल्ट रूप से हम सभी संभावित पैरामीटर देखना चाहते हैं। यदि यह तर्क पास किया जाता है, तो किसी भी पैरामीटर की उपस्थिति की परवाह किए बिना फ़िल्टरिंग की जाएगी।
-nb--no-bannerटूल का बैनर आउटपुट छिपाता है (यदि आप urless में इनपुट पाइप करते हैं तो यह डिफ़ॉल्ट रूप से छिपा होता है)।
--versionवर्तमान संस्करण संख्या दिखाएं।
-v--verboseवर्बोज़ आउटपुट
  • UNWANTED-CONTENT:
    • URL पाथ के एक भाग में 3 से अधिक डैश (-) होते हैं, लेकिन यह GUID नहीं है। इसका तात्पर्य मानव-लिखित सामग्री से है, जैसे how-to-hack-the-planet। यदि तर्क -khw पास किया जाता है, तो इसे नहीं हटाया जाएगा।
    • URL में /YYYY/MM/ होता है, जैसे वर्ष, माह। यह आमतौर पर स्थिर सामग्री होती है जैसे ब्लॉग। यदि तर्क -kym पास किया जाता है, तो इसे नहीं हटाया जाएगा।
  • अन्यथा URL में पैरामीटर (या फ़्रैगमेंट #) हैं और -dp/--disregard-params तर्क पास नहीं किया गया था:
    • यदि समान पैरामीटर वाले कई URLs हैं, तो केवल अद्वितीय पैरामीटर मान वाले URLs शामिल किए जाते हैं।
    • यदि ऐसे URLs हैं जिनमें पैरामीटर है, लेकिन कोई मान नहीं (या फ़्रैगमेंट), तो इसे शामिल किया जाएगा।