Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
urless — قم بتصفية قوائم عناوين URL الكبيرة وإزالة التكرارات منها عن طريق إزالة الامتدادات الثابتة والكلمات المفتاحية غير المرغوب فيها والمعرّفات والبدائل اللغوية والمعاملات، لإنتاج مجموعات نقاط نهاية نظيفة لاستطلاع الويب. | Kitploit
أدوات/GitHubGitHub/xnl-h4ck3r/urless
الاستطلاعجمع المعلوماتأمن الويباختبار الاختراقالأدوات والمكونات
GitHubxnl-h4ck3r/urless

urless

قم بتصفية قوائم عناوين URL الكبيرة وإزالة التكرارات منها عن طريق إزالة الامتدادات الثابتة والكلمات المفتاحية غير المرغوب فيها والمعرّفات والبدائل اللغوية والمعاملات، لإنتاج مجموعات نقاط نهاية نظيفة لاستطلاع الويب.

عرض المستودع
39141منذ 5 أشهرتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

نبذة - الإصدار 2.7

هذه أداة تُستخدم لتنقية قائمة عناوين URL من التكرارات. كنقطة انطلاق، اعتمدت على الأداة الرائعة uro من إعداد Somdev Sangwan. لكنني أردت تغيير بعض الأمور، وإجراء بعض التحسينات (مثل التعامل مع GUIDs)، وجعلها أكثر قابلية للتخصيص.

التثبيت

يدعم urless Python 3.

قم بتثبيت urless في بيئة بايثون الافتراضية (العامة).

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

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

الاستخدام

ماذا يفعل بالضبط؟

تقوم أساسًا بتمرير قائمة عناوين URL (من ملف، أو عبر الأنبوب من STDIN)، وتحصل على ملف أو عناوين URL منقّاة في الإخراج. ولكن بأي طريقة يتم تنقيتها؟ سأشرح ذلك أدناه، لكن أولاً إليك بعض المصطلحات التي سيتم استخدامها:

  • FILTER-EXTENSIONS: يشير هذا إلى قائمة الامتدادات التي يمكن تمريرها إما عبر -fe، أو تحديدها في FILTER_EXTENSIONS في config.yml، أو إذا لم يكن أي منهما موجودًا، فقائمة افتراضية من .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، أو تحديدها في FILTER_KEYWORDS في config.yml، أو إذا لم يكن أي منهما موجودًا، فقائمة افتراضية من blog,article,news,bootstrap,jquery,captcha,node_modules
  • LANGUAGE: يشير هذا إلى قائمة رموز اللغات التي يمكن تحديدها في LANGUAGE في config.yml، أو إذا لم تكن موجودة، فقائمة افتراضية من الرموز الأكثر شيوعًا 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 تحتوي على معاملات غير مرغوب فيها محددة في الإعداد REMOVE_PARAMS (أو تم تجاوزها بالوسيط -rp/--remove-params)، فسيتم إزالتها من جميع عناوين URL قبل المعالجة.
    • إذا تم تمرير -rcid/--regex-custom-id وكان مسار URL يحتوي على معرف مخصص، فسيتم تضمين تطابق واحد فقط لتعبير المعرف المخصص إذا كانت هناك عناوين URL متعددة حيث يكون هذا هو الاختلاف الوحيد.
    • إذا كان مسار URL يحتوي على GUID، فسيتم تضمين واحد فقط من معرفات GUID إذا كانت هناك عناوين URL متعددة حيث يكون GUID هو الاختلاف الوحيد.
    • إذا كان مسار URL يحتوي على معرف صحيح، فسيتم تضمين واحد فقط من المعرفات الصحيحة إذا كانت هناك عناوين URL متعددة حيث يكون المعرف الصحيح هو الاختلاف الوحيد.
    • إذا تم تمرير الوسيط -lang وكان عنوان URL يحتوي على رمز لغة (مثل en-gb)، فسيتم تضمين واحد فقط من رموز اللغات إذا كانت هناك عناوين URL متعددة حيث يختلف رمز اللغة.

أمثلة

الاستخدام الأساسي

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 إلخ) التي يتم فحص عناوين URL مقابلها في ظروف معينة.
  • FILTER_EXTENSIONS - قائمة مفصولة بفواصل من امتدادات الملفات (مثل .css,.jpg,.jpeg إلخ) التي يتم فحص جميع عناوين URL مقابلها. إذا تضمن عنوان URL أيًا من هذه السلاسل، فسيتم استبعاده من الإخراج.
  • LANGUAGE - قائمة مفصولة بفواصل من رموز اللغات (مثل en-gb,fr,nl إلخ) التي يتم فحص جميع عناوين URL مقابلها عند تمرير الوسيط -lang. إذا كانت هناك عناوين URL متعددة برموز لغات مختلفة، فسيتم إخراج نسخة واحدة فقط من عنوان URL.
  • REMOVE_PARAMS - قائمة مفصولة بفواصل من أسماء المعاملات الحساسة لحالة الأحرف (مثل cachebuster,cacheBuster) التي ستتم إزالتها من جميع عناوين URL قبل المعالجة.

التعبير النمطي المخصص

توجد حاليًا فحوصات تعبير نمطي تلقائية لجزء المسار إذا كان معرفًا عامًا فريدًا (GUID) أو معرفًا صحيحًا، لكن الوسيط -rcid / --regex-custom-id يسمح لك بتقديم تعبير نمطي لتحديد معرف مخصص. على سبيل المثال، إذا كان الهدف يحتوي على تنسيق معرف محدد (ليس GUID أو معرفًا صحيحًا)، فيمكنك تحديد تعبير نمطي له، وبعد ذلك سيتم إرجاع واحد فقط من هذه المعرفات في الإخراج إذا كان باقي عنوان URL هو نفسه. على سبيل المثال:

  • افترض أن الهدف لديه معرف مستخدم بتنسيق مثل U-65241X
  • وهناك عناوين URL متعددة مثل التالية:
    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
    

ملاحظات مهمة حول التعبير النمطي:

  • كتابة تعبيرات نمطية صحيحة قد تكون صعبة، وإذا لم تكن صحيحة، فقد ينتهي بك الأمر إلى مخرجات غير متوقعة وغير صحيحة.
  • ضع دائمًا تعبيرك النمطي بين علامتي اقتباس مفردة عند تمريره إلى الوسيط -rcid.
  • لا تحتاج إلى إضافة تعبير نمطي مخصص لـ GUID أو المعرف الصحيح - فهذه تتم معالجتها بالفعل.
  • يجب أن يبرز التعبير النمطي الجزء الكامل من المسار. لذا، إذا كان تعبيرك النمطي يحدد بداية المسار فقط، فأضف [^(\?|\/|#|$)]* إلى نهاية تعبيرك النمطي وهذا يعني جميع الأحرف الأخرى حتى نهاية جزء المسار.
  • يمكنك إضافة ^ في البداية، و$ في النهاية، لتعبيرك النمطي لضمان أنه يمثل الجزء الكامل من المسار بين الشرطات المائلة. ومع ذلك، ستتم إضافتها تلقائيًا إذا تركتها.
  • تأكد من أن التعبير النمطي يحدد الأقسام التي تهتم بها فقط، وإلا فقد تحصل على نتائج غير متوقعة. لاختبار تعبيرك النمطي، يمكنك أخذ ملف الإدخال وتنفيذ cat input.txt | grep -E 'U-[0-9]{5}[A-Z]' على سبيل المثال، ومعرفة ما إذا كان تعبيرك يبدو صحيحًا (يجب أن يبرز فقط ما تهتم به، وأن يبرز الجزء الكامل من المسار الذي يمثل المعرف المخصص).
  • يمكنك أيضًا الاختبار باستخدام Regex101، مع إدخال عناوين URL نموذجية في قسم TEST STRING للتحقق من صحته. تأكد من تحديد REGEX FLAGS global و multiline.
  • قد تكون هناك حالات لا يمكنك فيها ببساطة تقديم تعبير نمطي يحدد المعرف المخصص بشكل صحيح دون معالجة قيم أخرى بنفس الطريقة. على سبيل المثال، إذا كانت هناك عناوين URL مثل https://target.com/blah/xnl/settings حيث xnl هو اسم مستخدم، فلن تتمكن من إنشاء تعبير نمطي لاسم المستخدم لأنه ليس تنسيقًا فريدًا بما يكفي لتمييزه عن قيم المسار المحتملة الأخرى.

المشكلات

إذا واجهت أي مشاكل على الإطلاق، أو كانت لديك أفكار للتحسينات، فلا تتردد في فتح مشكلة على Github. إذا كانت هناك مشكلة، فسيكون من المفيد أن تقدم الأمر الدقيق الذي شغّلته ووصفًا تفصيليًا للمشكلة. إذا أمكن، قم بالتشغيل باستخدام -v لإعادة إنتاج المشكلة وأخبرني عن أي رسائل خطأ تظهر.

المهام المتبقية

لا شيء - لا تتردد في فتح مشكلة على Github لاقتراح أي تحسينات.

وأخيرًا...

حظًا سعيدًا وصيدًا موفقًا! إذا كنت تحب الأداة حقًا (أو أي أدوات أخرى)، أو ساعدتك في العثور على مكافأة رائعة، ففكر في شراء قهوة لي! ☕ (أحتاج إلى الكافيين!)

🤘 /XNL-h4ck3r

اشترِ لي قهوة على ko-fi.com

تنزيل الأداة
الوسيطالوسيط الطويلالوصف
-i--inputملف يحتوي على عناوين URL لتنقيتها.
-o--outputملف الإخراج الذي سيحتوي على قائمة عناوين URL المنقّاة (الافتراضي: output.txt). إذا تم تمرير الإخراج عبر الأنبوب إلى برنامج آخر، فسيتم كتابة الإخراج إلى STDOUT بدلاً من ذلك.
-fk--filter-keywordsقائمة مفصولة بفواصل من الكلمات المفتاحية لاستبعاد الروابط (إذا لم تكن هناك معاملات). سيؤدي هذا إلى تجاوز قائمة FILTER_KEYWORDS المحددة في config.yml
-fe--filter-extensionsقائمة مفصولة بفواصل من امتدادات الملفات لاستبعادها. سيؤدي هذا إلى تجاوز قائمة FILTER_EXTENSIONS المحددة في config.yml
-rp--remove-paramsقائمة مفصولة بفواصل من المعاملات الحساسة لحالة الأحرف لإزالتها من جميع عناوين URL. سيؤدي هذا إلى تجاوز قائمة REMOVE_PARAMS المحددة في config.yml. يمكن أن يكون هذا مفيدًا لإزالة معاملات كسر التخزين المؤقت على سبيل المثال.**
-ks--keep-slashلن تتم إزالة الشرطة المائلة في نهاية عنوان URL في الإدخال. لذلك قد تكون هناك عناوين URL متطابقة في الإخراج، واحدة بشرطة مائلة وأخرى بدونها.
-khw--keep-human-writtenافتراضيًا، تتم إزالة أي عنوان URL يحتوي جزء مساره على أكثر من 3 شرطات (-) لأنه يُفترض أنه محتوى مكتوب بواسطة البشر (مثل منشورات المدونات)، وليس مثيرًا للاهتمام. تمرير هذا الوسيط سيبقيها في الإخراج.
-kym--keep-yyyymmافتراضيًا، تتم إزالة أي عنوان URL يحتوي مساره على /YYYY/MM (حيث YYYY سنة و MM شهر) لأنه يُفترض أنه محتوى مدونة/أخبار، وليس مثيرًا للاهتمام. تمرير هذا الوسيط سيبقيها في الإخراج.
-rcid--regex-custom-idاستخدم بحذر! تعبير نمطي لمعرف مخصص يستخدمه هدفك. تأكد من تمرير القيمة بين علامتي اقتباس. راجع القسم أدناه لمزيد من التفاصيل حول هذا.
-iq--ignore-querystringقم بإزالة سلسلة الاستعلام (بما في ذلك أجزاء URL #) بحيث يكون الإخراج مسارات فريدة فقط.
-fnp--fragment-not-paramلا تتعامل مع أجزاء URL # بنفس طريقة التعامل مع المعاملات، على سبيل المثال إذا كان الرابط يحتوي على كلمة مفتاحية للتصفية وجزء (أو معامل) فعادةً ما يتم الاحتفاظ بالرابط، ولكن إذا تم تمرير هذا الوسيط وكان الرابط يحتوي على كلمة تصفية وجزء، فسيتم إزالة الرابط. أيضًا، إذا تم تمرير هذا الوسيط واستُخدم -iq / --ignore-querystring، فلن تتم إزالة الجزء من الروابط إذا لم تكن هناك سلسلة استعلام في الرابط.
-lang--languageإذا تم تمريره وكانت هناك عناوين URL متعددة برموز لغات مختلفة كجزء من المسار، فسيتم إخراج نسخة واحدة فقط من عنوان URL. الرموز محددة في قسم LANGUAGE في config.yml.
-c--configمسار ملف الإعداد YML. إذا لم يتم تمريره، فسيبحث عن ملف config.yml في دليل الإعداد الافتراضي، مثل ~/.config/urless/.
-dp--disregard-paramsهناك تصفية معينة لا تتم إذا كانت عناوين URL تحتوي على معاملات، لأننا افتراضيًا نريد رؤية جميع المعاملات الممكنة. إذا تم تمرير هذا الوسيط، فسيتم إجراء التصفية بغض النظر عن وجود أي معاملات.
-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:
    • إذا كانت هناك عناوين URL متعددة بنفس المعاملات، فسيتم تضمين عناوين URL ذات قيم المعاملات الفريدة فقط.
    • إذا كانت هناك عناوين URL تحتوي على معامل بدون قيمة (أو جزء)، فسيتم تضمينها.