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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
crawlergo — زاحف متصفح قوي لأدوات فحص الثغرات الأمنية على الويب | Kitploit
أدوات/GitHubGitHub/qianlitp/crawlergo
الاستطلاعماسحات الثغرات الأمنيةجمع المعلوماتأمن الويبزاحف الويب
GitHubqianlitp/crawlergo

crawlergo

زاحف متصفح قوي لأدوات فحص الثغرات الأمنية على الويب

عرض المستودع
3.0k493منذ سنة واحدةتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

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

crawlergo

chromedp BlackHat EU Arsenal

زاحف متصفح قوي لأدوات فحص الثغرات الأمنية على الويب

الوثيقة الإنجليزية | 中文文档

crawlergo هو زاحف متصفح يستخدم وضع chrome headless لجمع عناوين URL. يقوم بربط النقاط الرئيسية لصفحة الويب بأكملها مع مرحلة عرض DOM، ويملأ النماذج ويقدمها تلقائياً، مع تشغيل ذكي لأحداث JavaScript، ويجمع أكبر عدد ممكن من الإدخالات التي يعرضها الموقع. وحدة إزالة التكرار المدمجة في عناوين URL تقوم بتصفية عدد كبير من عناوين URL شبه الثابتة، مع الحفاظ على سرعة تحليل وزحف سريعة حتى للمواقع الكبيرة، وتنتج في النهاية مجموعة عالية الجودة من نتائج الطلبات.

يدعم crawlergo حالياً الميزات التالية:

  • عرض بيئة متصفح Chrome
  • تعبئة النماذج الذكية والإرسال التلقائي
  • جمع أحداث DOM الكاملة مع التشغيل التلقائي
  • إزالة التكرار الذكي لعناوين URL لإزالة معظم الطلبات المكررة
  • تحليل ذكي لصفحات الويب وجمع عناوين URL، بما في ذلك محتوى ملفات JavaScript وتعليقات الصفحات وملفات robots.txt والـ Fuzz التلقائي للمسارات الشائعة
  • دعم ربط المضيف (Host binding) وإضافة وإصلاح Referer تلقائياً
  • دعم وكيل طلبات المتصفح
  • دعم دفع النتائج إلى أدوات فحص الثغرات السلبية

لقطة شاشة

التثبيت

يرجى قراءة وتأكيد إخلاء المسؤولية بعناية قبل التثبيت والاستخدام.

البناء

  • التحويل للنظام الحالي
root@kitploit:~
make build
  • التحويل لجميع الأنظمة
root@kitploit:~
make build_all
  1. يعتمد crawlergo فقط على بيئة Chrome للتشغيل. قم بتنزيل إصدار جديد من Chromium من هنا.
  2. انتقل إلى صفحة التحميل للحصول على أحدث إصدار من crawlergo واستخرجه إلى أي مجلد. إذا كنت تستخدم Linux أو macOS، يرجى منح crawlergo صلاحيات التنفيذ (+x).
  3. أو يمكنك تعديل الكود وبنائه بنفسك.

إذا كنت تستخدم نظام Linux وأظهر Chrome نقصاً في التبعيات، يرجى الاطلاع على قسم استكشاف الأخطاء أدناه

بداية سريعة

انطلق!

افترض أن دليل تثبيت Chromium الخاص بك هو /tmp/chromium/، قم بتعيين 10 علامات تبويب مفتوحة في نفس الوقت وزحف إلى testphp.vulnweb.com:

root@kitploit:~
bin/crawlergo -c /tmp/chromium/chrome -t 10 http://testphp.vulnweb.com/

استخدام Docker

يمكنك أيضاً استخدام هذا مع Docker بدون متاعب:

root@kitploit:~
git clone https://github.com/Qianlitp/crawlergo
docker build . -t crawlergo
docker run crawlergo http://testphp.vulnweb.com/

استخدام وكيل

root@kitploit:~
bin/crawlergo -c /tmp/chromium/chrome -t 10 --request-proxy socks5://127.0.0.1:7891 http://testphp.vulnweb.com/

استدعاء crawlergo باستخدام Python

بشكل افتراضي، يطبع crawlergo النتائج مباشرة على الشاشة. سنقوم بعد ذلك بتعيين وضع الإخراج إلى json، وعينة الكود لاستدعائه باستخدام Python تكون كالتالي:

root@kitploit:~
#!/usr/bin/python3
# coding: utf-8

import simplejson
import subprocess


def main():
    target = "http://testphp.vulnweb.com/"
    cmd = ["bin/crawlergo", "-c", "/tmp/chromium/chrome", "-o", "json", target]
    rsp = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
    output, error = rsp.communicate()
	#  "--[Mission Complete]--"  هو السلسلة الفاصلة لنهاية المهمة
    result = simplejson.loads(output.decode().split("--[Mission Complete]--")[1])
    req_list = result["req_list"]
    print(req_list[0])


if __name__ == '__main__':
    main()

نتائج الزحف

عند تعيين وضع الإخراج إلى json، تحتوي النتيجة المرتجعة، بعد إزالة تسلسل JSON، على أربعة أجزاء:

  • all_req_list: جميع الطلبات التي تم العثور عليها خلال مهمة الزحف هذه، والتي تحتوي على أي نوع من الموارد من نطاقات أخرى.
  • req_list: يعيد نتائج النطاق الحالي لمهمة الزحف هذه، مع إزالة التكرار شبه الثابت، بدون روابط الموارد الثابتة. إنها مجموعة فرعية من all_req_list.
  • all_domain_list: قائمة بجميع النطاقات التي تم العثور عليها.
  • sub_domain_list: قائمة بالنطاقات الفرعية التي تم العثور عليها.

أمثلة

crawlergo يعيد الطلبات وعناوين URL الكاملة، والتي يمكن استخدامها بعدة طرق:

  • الاستخدام مع أدوات فحص الثغرات السلبية الأخرى

    أولاً، قم بتشغيل ماسح ضوئي سلبي واضبط عنوان الاستماع على: http://127.0.0.1:1234/

    بعد ذلك، افترض أن crawlergo موجود على نفس جهاز الماسح الضوئي، قم بتشغيل crawlergo واضبط المعاملات:

    --push-to-proxy http://127.0.0.1:1234/

  • ربط المضيف (غير متاح لإصدارات Chrome العالية) (مثال)

  • ملفات تعريف الارتباط المخصصة (مثال)

  • تنظيف العمليات الزومبي الناتجة عن crawlergo بانتظام (مثال) ، تمت المساهمة من قبل @ring04h

تجاوز كشف وضع headless

يمكن لـ crawlergo تجاوز كشف وضع headless بشكل افتراضي.

https://intoli.com/blog/not-possible-to-block-chrome-headless/chrome-headless-test.html

استكشاف الأخطاء

  • لم يتم العثور على 'Fetch.enable'

    Fetch هي ميزة مدعومة من قبل الإصدار الجديد من Chrome، إذا حدث هذا الخطأ، فهذا يعني أن إصدارك منخفض جداً، يرجى ترقية إصدار Chrome.

  • يعمل Chrome مع تبعيات مفقودة مثل xxx.so

    root@kitploit:~
    // Ubuntu
    apt-get install -yq --no-install-recommends \
         libasound2 libatk1.0-0 libc6 libcairo2 libcups2 libdbus-1-3 \
         libexpat1 libfontconfig1 libgcc1 libgconf-2-4 libgdk-pixbuf2.0-0 libglib2.0-0 libgtk-3-0 libnspr4 \
         libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 libx11-xcb1 libxcb1 libgbm1 \
         libxcursor1 libxdamage1 libxext6 libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 libnss3
         
    // CentOS 7
    sudo yum install pango.x86_64 libXcomposite.x86_64 libXcursor.x86_64 libXdamage.x86_64 libXext.x86_64 libXi.x86_64 \
         libXtst.x86_64 cups-libs.x86_64 libXScrnSaver.x86_64 libXrandr.x86_64 GConf2.x86_64 alsa-lib.x86_64 atk.x86_64 gtk3.x86_64 \
         ipa-gothic-fonts xorg-x11-fonts-100dpi xorg-x11-fonts-75dpi xorg-x11-utils xorg-x11-fonts-cyrillic xorg-x11-fonts-Type1 xorg-x11-fonts-misc -y
    
    sudo yum update nss -y
    
  • يتم تشغيل ظهور انتهاء مهلة التنقل / عدم العثور على المتصفح / عدم معرفة مسار الملف التنفيذي الصحيح للمتصفح

    تأكد من تكوين مسار الملف التنفيذي للمتصفح بشكل صحيح، اكتب: chrome://version في شريط العنوان، وابحث عن مسار الملف التنفيذي:

المعاملات

المعاملات الإلزامية

  • --chromium-path Path, -c Path المسار إلى الملف التنفيذي لـ Chrome. (إلزامي)

المعاملات الأساسية

  • --custom-headers Headers تخصيص رأس HTTP. يرجى تمرير البيانات بعد تسلسل JSON، وهذا معرف عالمياً وسيستخدم لجميع الطلبات. (الافتراضي: null)
  • --post-data PostData, -d PostData بيانات POST. (الافتراضي: null)
  • --max-crawled-count Number, -m Number الحد الأقصى لعدد مهام الزاحف لتجنب وقت الزحف الطويل بسبب الشبه ثابت. (الافتراضي: 200)
  • --filter-mode Mode, -f Mode وضع التصفية، simple: يتم تصفية الموارد الثابتة والطلبات المكررة فقط. smart: مع القدرة على تصفية الشبه ثابت. strict: قواعد تصفية شبه ثابت أكثر صرامة. (الافتراضي: smart)
  • --output-mode value, -o value وضع إخراج النتيجة، console: طباعة النتائج المحسنة مباشرة على الشاشة. json: طباعة سلسلة JSON المسلسلة لجميع النتائج. none: عدم طباعة الإخراج. (الافتراضي: console)
  • --output-json filepath كتابة النتيجة إلى الملف المحدد بعد تسلسلها كـ JSON. (الافتراضي: null)

توسيع عنوان URL المدخل

  • --fuzz-path استخدام القاموس المدمج لـ Fuzz المسار. (الافتراضي: false)
  • --fuzz-path-dict تخصيص مسار Fuzz عن طريق تمرير مسار ملف قاموس، مثال /home/user/fuzz_dir.txt، كل سطر من الملف يمثل مساراً للمعالجة بالـ Fuzz. (الافتراضي: null)
  • --robots-path حل المسار من ملف /robots.txt. (الافتراضي: false)

التعبئة التلقائية للنماذج

  • --ignore-url-keywords, -iuk كلمة مفتاحية لعنوان URL لا ترغب في زيارتها، تستخدم عادة لاستبعاد روابط الخروج عند تخصيص ملفات تعريف الارتباط. الاستخدام: -iuk logout -iuk exit. (الافتراضي: "logout", "quit", "exit")
  • --form-values, -fv تخصيص قيمة تعبئة النموذج، يتم ضبطها حسب نوع النص. الأنواع المدعومة: default, mail, code, phone, username, password, qq, id_card, url, date و number. يتم التعرف على أنواع النص من خلال الكلمات المفتاحية لقيمة السمة الأربع id، name، class، type لعلامة مربع الإدخال. مثال، تعريف مربع الإدخال للبريد الإلكتروني ليتم تعبئته تلقائياً بـ A ومربع إدخال كلمة المرور ليتم تعبئته تلقائياً بـ B، -fv mail=A -fv password=B. حيث default تمثل قيمة التعبئة عندما لا يتم التعرف على نوع النص، كـ "Cralwergo". (الافتراضي: Cralwergo)
  • --form-keyword-values, -fkv تخصيص قيمة تعبئة النموذج، يتم ضبطها بواسطة المطابقة التقريبية للكلمة المفتاحية. الكلمة المفتاحية تطابق قيم السمات الأربع id، name، class، لعلامة مربع الإدخال. مثال، المطابقة التقريبية للكلمة المفتاحية pass لتعبئة 123456 والكلمة المفتاحية user لتعبئة admin، . (الافتراضي: Cralwergo)

الإعدادات المتقدمة لعملية الزحف

  • --max-tab-count Number, -t Number الحد الأقصى لعدد علامات التبويب التي يمكن للزاحف فتحها في نفس الوقت. (الافتراضي: 8)
  • --tab-run-timeout Timeout أقصى وقت تشغيل لصفحة علامة تبويب واحدة. (الافتراضي: 20s)
  • --wait-dom-content-loaded-timeout Timeout أقصى مهلة لانتظار تحميل الصفحة بالكامل. (الافتراضي: 5s)
  • --event-trigger-interval Interval الفاصل الزمني عند تشغيل الحدث تلقائياً، يستخدم عادة في حالة بطء الشبكة المستهدفة وتضارب تحديث DOM مما يؤدي إلى فقدان التقاط عنوان URL. (الافتراضي: 100ms)
  • --event-trigger-mode Value وضع التشغيل التلقائي لأحداث DOM، مع async و sync، لفقدان التقاط عنوان URL الناتج عن تضارب تحديث DOM. (الافتراضي: async)
  • --before-exit-delay تأخير الخروج لإغلاق Chrome في نهاية مهمة علامة تبويب واحدة. يستخدم لانتظار التقاط بعض تحديثات DOM وطلبات XHR. (الافتراضي: 1s)

أخرى

  • --push-to-proxy عنوان الاستماع لاستقبال نتيجة الزاحف، عادة عنوان الاستماع للماسح الضوئي السلبي. (الافتراضي: null)
  • --push-pool-max الحد الأقصى لعدد التزامن عند إرسال نتائج الزاحف إلى عنوان الاستماع. (الافتراضي: 10)
  • --log-level مستويات تسجيل الدخول، debug، info، warn، error و fatal. (الافتراضي: info)
  • --no-headless إيقاف تشغيل وضع headless في Chrome لتصور عملية الزحف. (الافتراضي: false)

تابعني

Weibo:@9ian1i Twitter: @9ian1i

مقالات ذات صلة:ممارسة زاحف متصفح لفحص الثغرات على الويب

تنزيل الأداة
  • --request-proxy proxyAddress عنوان وكيل socks5، يتم إرسال جميع طلبات الشبكة من crawlergo ومتصفح Chrome عبر الوكيل. (الافتراضي: null)
  • type
    -fkv user=admin -fkv pass=123456