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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
recollapse — أداة اختبار عشوائي للتعبيرات المنطقية (regex) تعمل كصندوق أسود، تولّد حمولات لتجاوز التحقق من صحة الإدخال، واكتشاف عمليات التطبيع، والتهرب من جدران الحماية (WAF) في تطبيقات الويب. | Kitploit
أدوات/GitHubGitHub/0xacb/recollapse
توليد الحمولةتجاوز WAFأمن الويبالاختبار العشوائي
GitHub0xacb/recollapse

recollapse

أداة اختبار عشوائي للتعبيرات المنطقية (regex) تعمل كصندوق أسود، تولّد حمولات لتجاوز التحقق من صحة الإدخال، واكتشاف عمليات التطبيع، والتهرب من جدران الحماية (WAF) في تطبيقات الويب.

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

الأكثر شعبية

عرض الكل →

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

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

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

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

REcollapse

REcollapse هي أداة مساعدة لاختبار التعبيرات المنتظمة بطريقة الصندوق الأسود (black-box regex fuzzing) لتجاوز عمليات التحقق واكتشاف التطبيع (normalizations) في تطبيقات الويب.

يمكن أن تكون مفيدة أيضًا لتجاوز أنظمة حماية جدران الحماية للتطبيقات الويب (WAFs) والتخفيفات الضعيفة للثغرات. لمزيد من المعلومات، ألق نظرة على مقالة REcollapse.

الهدف من هذه الأداة هو إنشاء حمولات (payloads) للاختبار. يجب إجراء عملية الفحص الفعلية (fuzzing) باستخدام أدوات أخرى مثل Burp (المتسلل)، Caido (الأتمتة)، ffuf، أو ما شابه ذلك.


التثبيت

المتطلبات: بايثون 3

pip3 install recollapse أو python3 setup.py install أو pip3 install .

دوكر

docker build -t recollapse . أو docker pull 0xacb/recollapse


الاستخدام

root@kitploit:~
$ recollapse -h
usage: recollapse [-h] [-m MODES] [-e {1,2,3,4}] [-r RANGE] [-s SIZE] [-f FILE] [-an] [-mn MAXNORM] [-mt MAXTRUNC] [-nt] [-tt] [-ct]
                  [--html] [--version]
                  [input]

REcollapse is a helper tool for black-box regex fuzzing to bypass validations and discover normalizations in web applications

positional arguments:
  input                 original input

options:
  -h, --help            show this help message and exit
  -m, --modes, -p, --positions MODES
                        variation modes. Example: 1,2,3,4,5,6,7 (default). 1: starting, 2: separator, 3: normalization, 4:
                        termination, 5: regex metacharacters, 6: case folding/upper/lower, 7: byte truncation
  -e, --encoding {1,2,3,4}
                        1: URL-encoded format (default), 2: Unicode format, 3: Raw format, 4: Double URL-encoded format
  -r, --range RANGE     range of bytes for fuzzing. Example: 0,0xff (default)
  -s, --size SIZE       number of fuzzing bytes (default: 1)
  -f, --file FILE       read input from file
  -an, --alphanum       include alphanumeric bytes in fuzzing range
  -mn, --maxnorm MAXNORM
                        maximum number of normalizations (default: 3)
  -mt, --maxtrunc MAXTRUNC
                        maximum number of truncations (default: 3)
  -nt, --normtable      print normalization table
  -tt, --trunctable     print truncation table
  -ct, --casetable      print case table
  --html                output tables in HTML format
  --version             show recollapse version

شرح مفصل للخيارات

لنعتبر this_is.an_example كالمدخل.

الأنماط (Modes)

  1. فحص بداية المدخل: $this_is.an_example
  2. فحص قبل وبعد الأحرف الخاصة: this$_$is$.$an$_$example
  3. فحص مواضع التطبيع: استبدال جميع البايتات الممكنة وفقًا لجدول التطبيع
  4. فحص نهاية المدخل: this_is.an_example$
  5. فحص الأحرف الوصفية للتعبيرات المنتظمة: استبدال جميع الأحرف الوصفية الممكنة للتعبيرات المنتظمة: .^$*+-?()[]{}\|
  6. فحص تحويل الحالة (case folding/upper/lower): استبدال جميع البايتات الممكنة وفقًا لجدول الحالة
  7. فحص اقتطاع البايتات (byte truncation): استبدال جميع البايتات الممكنة وفقًا لجدول الاقتطاع

الترميز (Encoding)

  1. تنسيق مشفر بعنوان URL (URL-encoded) لاستخدامه مع application/x-www-form-urlencoded أو معاملات الاستعلام/النص: %22this_is.an_example
  2. تنسيق يونيكود (Unicode) لاستخدامه مع application/json: \u0022this_is.an_example
  3. تنسيق خام (Raw) لاستخدامه مع multipart/form-data: "this_is.an_example
  4. تنسيق مشفر بعنوان URL بشكل مزدوج (Double URL-encoded)

النطاق (Range)

تحديد نطاق من البايتات للفحص: -r 1-127. سيؤدي هذا إلى استبعاد الأحرف الأبجدية الرقمية ما لم يتم توفير الخيار -an.

الحجم (Size)

تحديد حجم الفحص للأنماط 1 و 2 و 4. الطريقة الافتراضية هي فحص جميع القيم الممكنة لبايت واحد. زيادة الحجم ستستهلك المزيد من الموارد وتولد مدخلات أكثر بكثير، ولكنها قد تؤدي إلى اكتشاف تجاوزات جديدة.

الملف (File)

يمكن توفير المدخل كوسيط موضعي، أو من الإدخال القياسي (stdin)، أو من ملف عبر الخيار -f.

الأبجدي الرقمي (Alphanumeric)

افتراضيًا، سيتم استبعاد الأحرف الأبجدية الرقمية من توليد المخرجات، والتي عادة ما تكون غير مثيرة للاهتمام من حيث الاستجابات. يمكنك السماح بذلك باستخدام الخيار -an.

الحد الأقصى لعدد التطبيعات (Maximum number of normalizations)

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

الجداول (Tables)

استخدم الخيار -nt لعرض جدول التطبيع، والخيار -ct لعرض جدول الحالة، والخيار -tt لعرض جدول الاقتطاع. يمكنك أيضًا استخدام الخيار --html لإخراج الجداول بتنسيق HTML.

root@kitploit:~
$ recollapse -nt --html > normalization_table.html
$ recollapse -tt --html > truncation_table.html
$ recollapse -ct --html > case_table.html

أمثلة

استخدام REcollapse كأداة سطر أوامر:

root@kitploit:~
$ recollapse -e 1 -m 1,2,4 -r 10-11 https://legit.example.com
%0ahttps://legit.example.com
%0bhttps://legit.example.com
https%0a://legit.example.com
https%0b://legit.example.com
...

$ echo "[email protected]" | recollapse 
%[email protected]
%[email protected]
...

$ echo "<svg/onload=alert(1)>" | recollapse | ffuf -w - -u "https://example.com/?param=FUZZ" -mc 200,403,500

استخدام REcollapse كمكتبة:

root@kitploit:~
from recollapse import Recollapse

recollapse = Recollapse(modes=Recollapse.DEFAULT_MODES,
                        encoding=Recollapse.ENCODING_RAW)
variants = recollapse.generate("<script")
for variant in variants:
    print(variant)

الموارد

تم تقديم هذه التقنية في الأصل في BSidesLisbon 2022

مقالة المدونة: https://0xacb.com/2022/11/21/recollapse/

الشرائح:

  • nahamcon_2022_eu_till_recollapse.pdf
  • bsideslisbon_2022_till_recollapse.pdf

مقاطع الفيديو:

  • NahamCon 2022 EU
  • BSidesLisbon 2022

الجداول:

  • جدول التطبيع: https://0xacb.com/normalization_table
  • جدول الحالة: https://0xacb.com/case_table
  • جدول الاقتطاع: https://0xacb.com/truncation_table

شكر خاص

  • @regala_
  • @0xz3z4d45
  • @jllis
  • @samwcyo
  • @yassineaboukir
  • @0xteknogeek
  • @vgpinho
  • @ryancbarnett
  • BBAC

و

  • فريق @ethiack
  • فريق @0xdisturbance
  • فريق @hacker0x01

⚠ إخلاء المسؤولية القانوني ⚠

هذا المشروع مصنوع لأغراض تعليمية واختبار أخلاقي فقط. استخدام هذه الأداة لمهاجمة أهداف دون موافقة مسبقة متبادلة غير قانوني. لا يتحمل المطورون أي مسؤولية ولا يتحملون المسؤولية عن أي سوء استخدام أو ضرر ناتج عن هذه الأداة.

تنزيل الأداة