
زحف متكرر لصفحات الويب لاكتشاف جميع عناوين URL من خلال تتبع الروابط، وتحليل خرائط الموقع، وملفات robots.txt. مثالي للاستطلاع الأمني واكتشاف المحتوى.
xcrawl3r هي أداة سطر أوامر مُصمَّمة لزحف صفحات الويب بشكل استرجاعي لجلب عناوين URL. تعمل عن طريق اجتياز المواقع بنشاط - متتبعة الروابط المُضمَّنة في صفحات الويب، وتحليل الملفات (بما في ذلك خرائط الموقع و robots.txt) - للكشف عن كل عنوان URL.
على عكس xurlfind3r الذي لا يتفاعل مباشرة مع الهدف، فإن xcrawl3r يتفاعل مباشرة مع الهدف عن طريق زحف صفحاته في الوقت الفعلي. هذا النهج النشط يسمح له باكتشاف عناوين URL التي قد تكون مخفية أو غير مفهرسة، مما يُقدِّم صورة كاملة عن التدفق التنقلي للموقع وتوزيع محتواه. وهذا يجعل xcrawl3r أداة قوية لباحثي الأمن السيبراني، والمحترفين في مجال تقنية المعلومات، وأي شخص يسعى للحصول على رؤى حول عناوين URL المرتبطة بالمواقع الإلكترونية.
robots.txt)stdin) والإخراج القياسي (stdout) لسهولة التكامل في سير العمل الآليقم بزيارة صفحة الإصدارات وابحث عن الأرشيف المناسب لنظام التشغيل والهندسة المعمارية لديك. قم بتنزيل الأرشيف من متصفحك أو انسخ عنوان URL الخاص به واسترجع باستخدام wget أو curl:
... باستخدام wget:
wget https://github.com/hueristiq/xcrawl3r/releases/download/v<version>/xcrawl3r-<version>-linux-amd64.tar.gz
... أو باستخدام curl:
curl -OL https://github.com/hueristiq/xcrawl3r/releases/download/v<version>/xcrawl3r-<version>-linux-amd64.tar.gz
... ثم قم باستخراج الملف الثنائي:
tar xf xcrawl3r-<version>-linux-amd64.tar.gz
[!TIP] يمكن دمج الخطوات أعلاه (التنزيل والاستخراج) في خطوة واحدة باستخدام هذا السطر الواحد:
curl -sL https://github.com/hueristiq/xcrawl3r/releases/download/v<version>/xcrawl3r-<version>-linux-amd64.tar.gz | tar -xzv
[!NOTE] على أنظمة Windows، يجب أن تتمكن من النقر المزدوج على الأرشيف المضغوط (zip) لاستخراج الملف التنفيذي
xcrawl3r.
... انقل الملف الثنائي xcrawl3r إلى مكان ما في مسار PATH الخاص بك. على سبيل المثال، على أنظمة GNU/Linux و OS X:
sudo mv xcrawl3r /usr/local/bin/
[!NOTE] يمكن لمستخدمي Windows اتباع How to: Add Tool Locations to the PATH Environment Variable لإضافة
xcrawl3rإلىPATHالخاص بهم.
قبل التثبيت من المصدر، تأكد من تثبيت Go على نظامك. يمكنك تثبيت Go باتباع الإرشادات الرسمية لنظام التشغيل الخاص بك. سنفترض هنا أن Go مثبت بالفعل.
go install ...go install -v github.com/hueristiq/xcrawl3r/cmd/xcrawl3r@latest
go build ... إصدار التطويراستنساخ المستودع
git clone https://github.com/hueristiq/xcrawl3r.git
بناء الأداة
cd xcrawl3r/cmd/xcrawl3r && \
go build .
انقل الملف الثنائي xcrawl3r إلى مكان ما في مسار PATH الخاص بك. على سبيل المثال، على أنظمة GNU/Linux و OS X:
sudo mv xcrawl3r /usr/local/bin/
يمكن لمستخدمي Windows اتباع How to: Add Tool Locations to the PATH Environment Variable لإضافة xcrawl3r إلى PATH الخاص بهم.
[!CAUTION] على الرغم من أن إصدار التطوير هو طريقة جيدة لإلقاء نظرة على أحدث ميزات
xcrawl3rقبل إصدارها، إلا أنه قد يحتوي على أخطاء. الإصدارات الرسمية المنشورة ستكون بشكل عام أكثر استقراراً.
لتثبيت xcrawl3r على Docker:
سحب صورة Docker باستخدام:
docker pull hueristiq/xcrawl3r:latest
تشغيل xcrawl3r باستخدام الصورة:
docker run --rm hueristiq/xcrawl3r:latest -h
ستعمل xcrawl3r فوراً بعد التثبيت. ومع ذلك، يمكن إضافة بعض الإعدادات إلى ملف تكوين موجود في $HOME/.config/xcrawl3r/config.yaml، والذي يتم إنشاؤه عند التشغيل الأول، أو تعيينها كمتغيرات بيئة.
مثال على متغيرات البيئة:
XCRAWL3R_REQUEST_TIMEOUT=10
لبدء استخدام xcrawl3r، افتح الطرفية (terminal) وقم بتشغيل الأمر التالي لعرض قائمة الخيارات:
xcrawl3r -h
إليك شكل رسالة المساعدة:
_ _____
__ _____ _ __ __ ___ _| |___ / _ __
\ \/ / __| '__/ _` \ \ /\ / / | |_ \| '__|
> < (__| | | (_| |\ V V /| |___) | |
/_/\_\___|_| \__,_| \_/\_/ |_|____/|_|
v1.2.0
USAGE:
xcrawl3r [OPTIONS]
CONFIGURATION:
-c, --configuration string (default: $HOME/.config/xcrawl3r/config.yaml)
INPUT:
-u, --url string[] target URL
-l, --list string target URLs file path
For multiple URLs, use comma(,) separated value with `--url`,
specify multiple `--url`, load from file with `--list` or load from stdin.
SCOPE:
-d, --domain string[] match domain(s) URLs
For multiple domains, use comma(,) separated value with `--domain`
or specify multiple `--domain`.
--include-subdomains bool with domain(s), match subdomains' URLs
REQUEST:
--delay int delay between each request in seconds
-H, --header string[] header to include in 'header:value' format
For multiple headers, use comma(,) separated value with `--header`
or specify multiple `--header`.
--timeout int time to wait for request in seconds (default: 10)
PROXY:
-p, --proxy string[] Proxy (e.g: http://127.0.0.1:8080)
For multiple proxies use comma(,) separated value with `--proxy`
or specify multiple `--proxy`.
OPTIMIZATION:
--depth int maximum depth to crawl, `0` for infinite (default: 1)
-C, --concurrency int number of concurrent inputs to process (default: 5)
-P, --parallelism int number of concurrent fetchers to use (default: 5)
DEBUG:
--debug bool enable debug mode
OUTPUT:
--jsonl bool output in JSONL(ines)
-o, --output string output write file path
-m, --monochrome bool stdout in monochrome
-s, --silent bool stdout in silent mode
-v, --verbose bool stdout in verbose mode
المساهمات مرحب بها ومشجعة! لا تتردد في تقديم طلبات السحب أو الإبلاغ عن المشكلات. لمزيد من التفاصيل، اطلع على إرشادات المساهمة.
شكر جزيل لجميع المساهمين على دعمكم المستمر!
هذه الحزمة مرخصة بموجب رخصة MIT. أنت حر في استخدامها وتعديلها وتوزيعها، طالما تلتزم بشروط الترخيص. يمكنك العثور على نص الترخيص الكامل في المستودع - نص رخصة MIT الكامل.