Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
ffuf — مفاجئ ويب سريع مكتوب بلغة Go | Kitploit
أدوات/GitHubGitHub/ffuf/ffuf
الاستطلاعماسحات الثغرات الأمنية للويبتحليل الثغرات الأمنيةتحليل الشفرة الديناميكي (DAST)البرمجة النصية والأتمتةاستغلال تطبيقات الويباختبار أمان APIجمع المعلوماتتجاوز WAFأمن الويبالاختبار العشوائي
16.5k1.6k252منذ شهر واحدتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

عرض جميع الأدوات →
اختبار الاختراق
الاختبار العشوائي لـ DNS
زاحف الويب
أمن واجهات برمجة التطبيقات
الأفضل في أمن واجهات برمجة التطبيقات #14
الأفضل في اختبار أمان API #14
الأفضل في زاحف الويب #7
الأفضل في الاختبار العشوائي لـ DNS #12
الأفضل في تحليل الشفرة الديناميكي (DAST) #9
الأفضل في جمع المعلومات #15
الأفضل في اختبار الاختراق #8
الأفضل في الاستطلاع #14
الأفضل في البرمجة النصية والأتمتة #19
الأفضل في تجاوز WAF #11
الأفضل في استغلال تطبيقات الويب #6
الأفضل في أمن الويب #4
الأفضل في ماسحات الثغرات الأمنية للويب #9
GitHubffuf/ffuf

ffuf

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

عرض المستودع
مشاركة
![تميمة ffuf](https://assets.kitploit.com/production/public/readmes/365/fcab41490fbb82d9b84cbd4e2acf93da6aec22710001d8dc7b0c46cf7d5de5c2.png)
# ffuf - التخمين بشكل أسرع أيها الأحمق

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

- [التثبيت](https://github.com/ffuf/ffuf#installation)
- [أمثلة الاستخدام](https://github.com/ffuf/ffuf#example-usage)
    - [اكتشاف المحتوى](https://github.com/ffuf/ffuf#typical-directory-discovery)
    - [اكتشاف المضيف الافتراضي](https://github.com/ffuf/ffuf#virtual-host-discovery-without-dns-records)
    - [تخمين المعاملات](https://github.com/ffuf/ffuf#get-parameter-fuzzing)
    - [تخمين بيانات POST](https://github.com/ffuf/ffuf#post-data-fuzzing)
    - [استخدام معدّل خارجي](https://github.com/ffuf/ffuf#using-external-mutator-to-produce-test-cases)
    - [ملفات الإعدادات](https://github.com/ffuf/ffuf#configuration-files)
- [المساعدة](https://github.com/ffuf/ffuf#usage)
    - [الوضع التفاعلي](https://github.com/ffuf/ffuf#interactive-mode)


## التثبيت

- [حمّل](https://github.com/ffuf/ffuf/releases/latest) نسخة مصمّمة مسبقاً من [صفحة الإصدارات](https://github.com/ffuf/ffuf/releases/latest)، فك الضغط وشغّل!

  _أو_
- إذا كنت على Windows مع [Scoop](https://scoop.sh/)، يمكن تثبيت ffuf بـ: `scoop install ffuf`

  _أو_
- إذا كنت على Windows مع [Winget](https://learn.microsoft.com/en-us/windows/package-manager/)، يمكن تثبيت ffuf بـ: `winget install ffuf.ffuf`

  _أو_
- إذا كنت على macOS مع [homebrew](https://brew.sh)، يمكن تثبيت 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](https://github.com/ffuf/ffuf/wiki)

للحصول على توثيق أكثر شمولاً مع أمثلة واقعية ونصائح، تأكد من الاطلاع على الدليل الرائع:
"[كل ما تحتاج معرفته عن FFUF](https://codingo.io/tools/ffuf/bounty/2020/09/17/everything-you-need-to-know-about-ffuf.html)" بقلم
Michael Skelton ([@codingo](https://github.com/codingo)).

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

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

[![asciicast](https://assets.kitploit.com/production/public/readmes/365/1c862d1e97978c8b504da2cab34e5b812cb81c981ce3e65ffe31da1ae7212bef.png)](https://asciinema.org/a/211350)

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

```
ffuf -w /path/to/wordlist -u https://target/FUZZ
```

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

[![asciicast](https://assets.kitploit.com/production/public/readmes/365/7159f08726e2144eedf1a4cfb5fc950064008842011b64fd7a949b91aba561f8.png)](https://asciinema.org/a/211360)

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

```
ffuf -w /path/to/vhost/wordlist -u https://target -H "Host: FUZZ" -fs 4242
```

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

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

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

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

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

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

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

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

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

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

```
ffuf -w /path/to/wordlist -u https://target/FUZZ -maxtime 60
```

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

```
ffuf -w /path/to/wordlist -u https://target/FUZZ -maxtime-job 60 -recursion -recursion-depth 2
```

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

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

في هذا المثال، سنخمّن بيانات JSON التي تُرسل عبر POST. يستخدم [Radamsa](https://gitlab.com/akihe/radamsa) كمعدّل.

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

```
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](https://gitlab.com/akihe/radamsa) كمثال:

```
# توليد 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/blob/master/ffufrc.example).

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

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

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

<p align="center">
  <img width="250" src="https://assets.kitploit.com/production/public/readmes/365/909c2e84347941ae0f0525fc3d8d9b39143a3859d4a24aecbfd581fbb4134f67.png">
</p>

## الاستخدام

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

```
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، يتم إيقاف العملية ويتم إسقاط المستخدم إلى وضع تفاعلي يشبه الصدفة:
```
دخول الوضع التفاعلي
اكتب "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`، الذي يعيد تعيين الحالة ويبدأ المهمة الحالية من البداية.

<p align="center">
  <img width="250" src="https://assets.kitploit.com/production/public/readmes/365/2705ba6f9fe2d16f8679e971afabf942e68be141a81d1e0f820f53aac2dda032.png">
</p>

## المساهمة

نرحب بتقارير الأخطاء وطلبات الميزات وطلبات السحب. راجع
[CONTRIBUTING.md](https://github.com/ffuf/ffuf/blob/master/CONTRIBUTING.md) للبدء، و
[قسم المساهمة في الويكي](https://github.com/ffuf/ffuf/wiki/Contributing) للحصول على
وثائق العمارة والاختبار.

## الترخيص

ffuf مُصدَر تحت رخصة MIT. انظر [LICENSE](https://github.com/ffuf/ffuf/blob/master/LICENSE).
تنزيل الأداة