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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
ffuf — مفاجئ ويب سريع مكتوب بلغة Go | Kitploit
أدوات/GitHubGitHub/ffuf/ffuf
تحليل الثغرات الأمنيةجمع المعلوماتأمن الويبالاختبار العشوائياختبار الاختراق
GitHubffuf/ffuf

ffuf

مفاجئ ويب سريع مكتوب بلغة Go

عرض المستودع
16.5k1.6kمنذ شهر واحدتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

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

تميمة ffuf

ffuf - التخمين بشكل أسرع أيها الأحمق

مُخمّن ويب سريع مكتوب بلغة Go.

  • التثبيت
  • أمثلة الاستخدام
    • اكتشاف المحتوى
    • اكتشاف المضيف الافتراضي
    • تخمين المعاملات
    • تخمين بيانات POST
    • استخدام معدّل خارجي
    • ملفات الإعدادات
  • المساعدة
    • الوضع التفاعلي

التثبيت

  • حمّل نسخة مصمّمة مسبقاً من صفحة الإصدارات، فك الضغط وشغّل!

    أو

  • إذا كنت على Windows مع Scoop، يمكن تثبيت ffuf بـ: scoop install ffuf

    أو

  • إذا كنت على Windows مع Winget، يمكن تثبيت ffuf بـ: winget install ffuf.ffuf

    أو

  • إذا كنت على macOS مع homebrew، يمكن تثبيت ffuf بـ: brew install ffuf

    أو

  • إذا كان لديك مترجم Go حديث: go install github.com/ffuf/ffuf/v2@latest (نفس الأمر يعمل للتحديث)

    أو

  • git clone https://github.com/ffuf/ffuf ; cd ffuf ; go get ; go build

  1. يعتمد ffuf على Go 1.20 أو أحدث.
  2. بناء Go من المستودع يُظهر git-<تاريخ>-<تجزئة> بدلاً من الوسم. البناء المحلي ليس إصداراً رسمياً حتى لو كنت على وسم، ومعلومات البناء المضمنة من Go تعطينا التجزئة ولكن ليس اسم الوسم — لذلك نعرض التجزئة الدقيقة التي بُني منها. النسخ الرسمية ذات الإصدارات هي الموجودة في صفحة الإصدارات.

أمثلة الاستخدام

أمثلة الاستخدام أدناه تُظهر أبسط المهام التي يمكنك إنجازها باستخدام ffuf.

التوثيق الأكثر تفصيلاً الذي يغطي العديد من الميزات مع الكثير من الأمثلة متاح في ويكي ffuf على https://github.com/ffuf/ffuf/wiki

للحصول على توثيق أكثر شمولاً مع أمثلة واقعية ونصائح، تأكد من الاطلاع على الدليل الرائع: "كل ما تحتاج معرفته عن FFUF" بقلم Michael Skelton (@codingo).

يمكنك أيضاً التدرب على فحوصات ffuf ضد مضيف حي مع دروس وحالات استخدام مختلفة إما محلياً باستخدام حاوية docker https://github.com/adamtlangley/ffufme أو ضد النسخة المستضافة على http://ffuf.me التي أنشأها Adam Langley @adamtlangley.

اكتشاف الدليل النموذجي

asciicast

باستخدام الكلمة المفتاحية FUZZ في نهاية URL (-u):

root@kitploit:~
ffuf -w /path/to/wordlist -u https://target/FUZZ

اكتشاف المضيف الافتراضي (بدون سجلات DNS)

asciicast

بافتراض أن حجم استجابة المضيف الافتراضي هو 4242 بايت، يمكننا تصفية جميع الاستجابات بهذا الحجم (-fs 4242) أثناء تخمين الرأس Host -:

root@kitploit:~
ffuf -w /path/to/vhost/wordlist -u https://target -H "Host: FUZZ" -fs 4242

تخمين معاملات GET

تخمين اسم معامل GET مشابه جداً لاكتشاف الدليل، ويعمل بتعريف الكلمة المفتاحية FUZZ كجزء من URL. يفترض هذا أيضاً حجم استجابة 4242 بايت لاسم معامل GET غير صالح.

root@kitploit:~
ffuf -w /path/to/paramnames.txt -u https://target/script.php?FUZZ=test_value -fs 4242

إذا كان اسم المعامل معروفاً، يمكن تخمين القيم بنفس الطريقة. يفترض هذا المثال أن قيمة المعامل الخاطئة تعيد رمز استجابة HTTP 401.

root@kitploit:~
ffuf -w /path/to/values.txt -u https://target/script.php?valid_name=FUZZ -fc 401

تخمين بيانات POST

هذه عملية مباشرة للغاية، باستخدام الكلمة المفتاحية FUZZ مرة أخرى. هذا المثال يخمّن جزءاً فقط من طلب POST. نقوم مرة أخرى بتصفية استجابات 401.

root@kitploit:~
ffuf -w /path/to/postdata.txt -X POST -d "username=admin\&password=FUZZ" -u https://target/login.php -fc 401

الحد الأقصى لوقت التنفيذ

إذا كنت لا تريد أن يعمل ffuf إلى أجل غير مسمى، يمكنك استخدام -maxtime. هذا يوقف العملية بأكملها بعد وقت معين (بالثواني).

root@kitploit:~
ffuf -w /path/to/wordlist -u https://target/FUZZ -maxtime 60

عند العمل مع التكرار، يمكنك التحكم في maxtime لكل مهمة باستخدام -maxtime-job. هذا يوقف المهمة الحالية بعد وقت معين (بالثواني) ويستمر مع التالية. يتم إنشاء مهام جديدة عندما تكتشف وظيفة التكرار دليلاً فرعياً.

root@kitploit:~
ffuf -w /path/to/wordlist -u https://target/FUZZ -maxtime-job 60 -recursion -recursion-depth 2

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

استخدام معدّل خارجي لإنتاج حالات الاختبار

في هذا المثال، سنخمّن بيانات JSON التي تُرسل عبر POST. يستخدم Radamsa كمعدّل.

عند استخدام --input-cmd، سيعرض ffuf التطابقات كموضعها. ستكون قيمة هذا الموضع متاحة للمستدعى كمتغير بيئة $FFUF_NUM. سنستخدم قيمة الموضع هذه كبذرة للمعدّل. الملفان example1.txt و example2.txt يحتويان على حمولات JSON صالحة. نطابق جميع الاستجابات، ولكن نفلتر رمز الاستجابة 400 - طلب سيئ:

root@kitploit:~
ffuf --input-cmd 'radamsa --seed $FFUF_NUM example1.txt example2.txt' -H "Content-Type: application/json" -X POST -u https://ffuf.io.fi/FUZZ -mc all -fc 400

بالطبع ليس من الفعال استدعاء المعدّل لكل حمولة، لذلك يمكننا أيضاً توليد الحمولات مسبقاً، مع الاستمرار في استخدام Radamsa كمثال:

root@kitploit:~
# توليد 1000 حمولة نموذجية
radamsa -n 1000 -o %n.txt example1.txt example2.txt

# ينتج عن ذلك ملفات 1.txt ... 1000.txt
# الآن يمكننا قراءة بيانات الحمولة في حلقة من ملف لـ ffuf

ffuf --input-cmd 'cat $FFUF_NUM.txt' -H "Content-Type: application/json" -X POST -u https://ffuf.io.fi/ -mc all -fc 400

ملفات الإعدادات

عند تشغيل ffuf، يتحقق أولاً مما إذا كان ملف إعدادات افتراضي موجوداً. المسار الافتراضي لملف ffufrc هو $XDG_CONFIG_HOME/ffuf/ffufrc. يمكنك إعداد خيار واحد أو أكثر في هذا الملف، وسيتم تطبيقها على كل مهمة ffuf لاحقة. مثال على ملف ffufrc يمكن العثور عليه هنا.

وصف أكثر تفصيلاً عن مواقع ملفات الإعدادات موجود في الويكي: https://github.com/ffuf/ffuf/wiki/Configuration

خيارات الإعداد المقدمة من سطر الأوامر تتجاوز تلك المحملة من ملف ffufrc الافتراضي. ملاحظة: لا ينطبق هذا على أعلام CLI التي يمكن توفيرها أكثر من مرة. أحد هذه الأمثلة هو العلم -H (الرأس). في هذه الحالة، سيتم إلحاق قيم -H المقدمة في سطر الأوامر بتلك الموجودة في ملف الإعداد بدلاً من ذلك.

بالإضافة إلى ذلك، في حالة رغبتك في استخدام مجموعة من ملفات الإعدادات لحالات استخدام مختلفة، يمكنك القيام بذلك عن طريق تعريف مسار ملف الإعداد باستخدام علم سطر الأوامر -config الذي يأخذ مسار ملف الإعداد كمعامل له.

الاستخدام

لتحديد حالة الاختبار لـ ffuf، استخدم الكلمة المفتاحية FUZZ في أي مكان في URL (-u)، أو الرؤوس (-H)، أو بيانات POST (-d).

root@kitploit:~
Fuzz Faster U Fool - v2.1.0

خيارات HTTP:
  -H                  رأس `"Name: Value"`، مفصول بنقطتين. يتم قبول عدة أعلام -H.
  -X                  طريقة HTTP للاستخدام
  -b                  بيانات الكوكي `"NAME1=VALUE1; NAME2=VALUE2"` لوظيفة "نسخ كـ curl".
  -cc                 شهادة العميل للمصادقة. يجب تعريف مفتاح العميل أيضاً لكي يعمل هذا
  -ck                 مفتاح العميل للمصادقة. يجب تعريف شهادة العميل أيضاً لكي يعمل هذا
  -d                  بيانات POST
  -http2              استخدام بروتوكول HTTP2 (الافتراضي: false)
  -ignore-body        لا تجلب محتوى الاستجابة. (الافتراضي: false)
  -r                  اتباع إعادة التوجيه (الافتراضي: false)
  -raw                لا ترميز URI (الافتراضي: false)
  -recursion          المسح بشكل متكرر. يتم دعم الكلمة المفتاحية FUZZ فقط، ويجب أن ينتهي URL (-u) بها. (الافتراضي: false)
  -recursion-depth    أقصى عمق للتكرار. (الافتراضي: 0)
  -recursion-strategy استراتيجية التكرار: "default" لاستراتيجية قائمة على إعادة التوجيه، و "greedy" للتكرار على جميع التطابقات (الافتراضي: default)
  -replay-proxy       إعادة تشغيل الطلبات المتطابقة باستخدام هذا الوكيل.
  -sni                هدف TLS SNI، لا يدعم الكلمة المفتاحية FUZZ
  -timeout            مهلة طلب HTTP بالثواني. (الافتراضي: 10)
  -u                  عنوان URL الهدف
  -x                  عنوان URL للوكيل (SOCKS5 أو HTTP). مثال: http://127.0.0.1:8080 أو socks5://127.0.0.1:8080

خيارات عامة:
  -V                  إظهار معلومات الإصدار. (الافتراضي: false)
  -ac                 معايرة خيارات التصفية تلقائياً (الافتراضي: false)
  -acc                سلسلة معايرة تلقائية مخصصة. يمكن استخدامها عدة مرات. تستلزم -ac
  -ach                معايرة تلقائية لكل مضيف (الافتراضي: false)
  -ack                كلمة مفتاحية للمعايرة التلقائية (الافتراضي: FUZZ)
  -acs                استراتيجيات معايرة تلقائية مخصصة. يمكن استخدامها عدة مرات. تستلزم -ac
  -c                  تلوين المخرجات. (الافتراضي: false)
  -config             تحميل الإعدادات من ملف
  -json               مخرجات JSON، تطبع سجلات JSON مفصولة بأسطر جديدة (الافتراضي: false)
  -maxtime            أقصى وقت تشغيل بالثواني للعملية بأكملها. (الافتراضي: 0)
  -maxtime-job        أقصى وقت تشغيل بالثواني لكل مهمة. (الافتراضي: 0)
  -noninteractive     تعطيل وظيفة وحدة التحكم التفاعلية (الافتراضي: false)
  -p                  ثوانٍ من `التأخير` بين الطلبات، أو نطاق تأخير عشوائي. مثال "0.1" أو "0.1-2.0"
  -rate               معدل الطلبات في الثانية (الافتراضي: 0)
  -s                  لا تطبع معلومات إضافية (الوضع الصامت) (الافتراضي: false)
  -sa                 التوقف عند جميع حالات الخطأ. يستلزم -sf و -se. (الافتراضي: false)
  -scraperfile        مسار ملف الكاشط المخصص
  -scrapers           مجموعات الكاشط النشطة (الافتراضي: all)
  -se                 التوقف عند الأخطاء الزائفة (الافتراضي: false)
  -search             البحث عن حمولة FFUFHASH من سجل ffuf
  -sf                 التوقف عندما > 95% من الاستجابات تعيد 403 ممنوع (الافتراضي: false)
  -t                  عدد الخيوط المتزامنة. (الافتراضي: 40)
  -v                  مخرجات مفصلة، تطبع URL الكامل وموقع إعادة التوجيه (إن وجد) مع النتائج. (الافتراضي: false)

خيارات المطابقة:
  -mc                 مطابقة رموز حالة HTTP، أو "all" لكل شيء. (الافتراضي: 200-299,301,302,307,401,403,405,500)
  -ml                 مطابقة عدد الأسطر في الاستجابة
  -mmode              عامل ضبط مجموعة المطابقة. إما: and، or (الافتراضي: or)
  -mr                 مطابقة تعبير عادي
  -ms                 مطابقة حجم استجابة HTTP
  -mt                 مطابقة عدد الميلي ثانية لأول بايت استجابة، إما أكبر أو أقل. مثال: >100 أو <100
  -mw                 مطابقة عدد الكلمات في الاستجابة

خيارات التصفية:
  -fc                 تصفية رموز حالة HTTP من الاستجابة. قائمة مفصولة بفواصل للرموز والنطاقات
  -fl                 تصفية بعدد الأسطر في الاستجابة. قائمة مفصولة بفواصل لعدد الأسطر والنطاقات
  -fmode              عامل ضبط مجموعة التصفية. إما: and، or (الافتراضي: or)
  -fr                 تصفية تعبير عادي
  -fs                 تصفية حجم استجابة HTTP. قائمة مفصولة بفواصل للأحجام والنطاقات
  -ft                 تصفية بعدد الميلي ثانية لأول بايت استجابة، إما أكبر أو أقل. مثال: >100 أو <100
  -fw                 تصفية بعدد الكلمات في الاستجابة. قائمة مفصولة بفواصل لعدد الكلمات والنطاقات

خيارات الإدخال:
  -D                  وضع التوافق مع قائمة كلمات DirSearch. يُستخدم مع العلم -e. (الافتراضي: false)
  -e                  قائمة مفصولة بفواصل من الامتدادات. يوسع الكلمة المفتاحية FUZZ.
  -enc                مشفرات للكلمات المفتاحية، مثل: 'FUZZ:urlencode b64encode'
  -ic                 تجاهل تعليقات قائمة الكلمات (الافتراضي: false)
  -input-cmd          أمر ينتج الإدخال. --input-num مطلوب عند استخدام طريقة الإدخال هذه. يتجاوز -w.
  -input-num          عدد الإدخالات لاختبارها. يُستخدم مع --input-cmd. (الافتراضي: 100)
  -input-shell        الصدفة المستخدمة لتشغيل الأمر
  -mode               وضع تشغيل متعدد قوائم الكلمات. الأوضاع المتاحة: clusterbomb, pitchfork, sniper (الافتراضي: clusterbomb)
  -request            ملف يحتوي على طلب http الخام
  -request-proto      البروتوكول المستخدم مع الطلب الخام (الافتراضي: https)
  -w                  مسار ملف قائمة الكلمات و(اختيارياً) كلمة مفتاحية مفصولة بنقطتين. مثال: '/path/to/wordlist:KEYWORD'

خيارات المخرجات:
  -debug-log          كتابة جميع السجلات الداخلية إلى الملف المحدد.
  -o                  كتابة المخرجات إلى ملف
  -od                 مسار الدليل لتخزين النتائج المتطابقة فيه.
  -of                 تنسيق ملف المخرجات. التنسيقات المتاحة: json, ejson, html, md, csv, ecsv (أو 'all' لجميع التنسيقات) (الافتراضي: json)
  -or                 لا تنشئ ملف المخرجات إذا لم تكن هناك نتائج (الافتراضي: false)

أمثلة الاستخدام:
  تخمين مسارات الملفات من wordlist.txt، طابق جميع الاستجابات ولكن صف تلك التي حجم محتواها 42.
  مخرجات ملونة ومفصلة.
    ffuf -w wordlist.txt -u https://example.org/FUZZ -mc all -fs 42 -c -v

  تخمين رأس Host، طابق استجابات HTTP 200.
    ffuf -w hosts.txt -u https://example.org/ -H "Host: FUZZ" -mc 200

  تخمين بيانات POST بصيغة JSON. طابق جميع الاستجابات التي لا تحتوي على النص "error".
    ffuf -w entries.txt -u https://example.org/ -X POST -H "Content-Type: application/json" \
      -d '{"name": "FUZZ", "anotherkey": "anothervalue"}' -fr "error"

  تخمين مواقع متعددة. طابق فقط الاستجابات التي تعكس قيمة الكلمة المفتاحية "VAL". ملوّن.
    ffuf -w params.txt:PARAM -w values.txt:VAL -u https://example.org/?PARAM=VAL -mr "VAL" -c

  مزيد من المعلومات والأمثلة: https://github.com/ffuf/ffuf

الوضع التفاعلي

بالضغط على ENTER أثناء تنفيذ ffuf، يتم إيقاف العملية ويتم إسقاط المستخدم إلى وضع تفاعلي يشبه الصدفة:

root@kitploit:~
دخول الوضع التفاعلي
اكتب "help" للحصول على قائمة بالأوامر، أو ENTER للاستئناف.
> help

الأوامر المتاحة:
 afc  [قيمة]             - إلحاق بفلتر رمز الحالة 
 fc   [قيمة]             - (إعادة) تكوين فلتر رمز الحالة 
 afl  [قيمة]             - إلحاق بفلتر عدد الأسطر 
 fl   [قيمة]             - (إعادة) تكوين فلتر عدد الأسطر 
 afw  [قيمة]             - إلحاق بفلتر عدد الكلمات 
 fw   [قيمة]             - (إعادة) تكوين فلتر عدد الكلمات 
 afs  [قيمة]             - إلحاق بفلتر الحجم 
 fs   [قيمة]             - (إعادة) تكوين فلتر الحجم 
 aft  [قيمة]             - إلحاق بفلتر الوقت 
 ft   [قيمة]             - (إعادة) تكوين فلتر الوقت 
 rate [قيمة]             - ضبط معدل الطلبات في الثانية (النشط: 0)
 queueshow                - عرض قائمة انتظار المهام
 queuedel [رقم]          - حذف مهمة في قائمة الانتظار
 queueskip                - التقدم إلى المهمة التالية في قائمة الانتظار
 restart                  - إعادة تشغيل واستئناف مهمة ffuf الحالية
 resume                   - استئناف مهمة ffuf الحالية (أو: ENTER) 
 show                     - عرض نتائج المهمة الحالية
 savejson [اسم الملف]    - حفظ التطابقات الحالية في ملف
 help                     - أنت تنظر إليه الآن
> 

في هذا الوضع، يمكن إعادة تكوين عوامل التصفية، وإدارة قائمة الانتظار، وحفظ الحالة الحالية على القرص.

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

يمكن طباعة الحالة الجديدة للتطابقات باستخدام الأمر show الذي سيطبع جميع التطابقات كما لو كانت قد تم العثور عليها بواسطة ffuf.

نظراً لأن التطابقات "السلبية" لا تُخزن في الذاكرة، فإن تخفيف عوامل التصفية لا يمكن للأسف استعادة التطابقات المفقودة. في هذا السيناريو، يمكن للمستخدم استخدام الأمر restart، الذي يعيد تعيين الحالة ويبدأ المهمة الحالية من البداية.

المساهمة

نرحب بتقارير الأخطاء وطلبات الميزات وطلبات السحب. راجع CONTRIBUTING.md للبدء، و قسم المساهمة في الويكي للحصول على وثائق العمارة والاختبار.

الترخيص

ffuf مُصدَر تحت رخصة MIT. انظر LICENSE.

تنزيل الأداة