
إضافة Java لـ Burp تقوم بإجراء تجميع نصي على الاستجابات لتحديد القيم الشاذة/المجموعات بناءً على المحتوى الفعلي لاستجابات الخادم، مثل تلك الناتجة عن تشغيل Intruder.
إضافة لـ Burp Suite لتجميع استجابات HTTP بهدف إيجاد القيم الشاذة.
هذا إضافة كنت أفكر في بنائها منذ سنوات عديدة، ببساطة لأنني منزعج إلى حد ما من الطريقة التي نحلل بها نتائج هجمات التشويش (fuzzing) في Burp intruder. نحن عادةً نبحث عن تغييرات في استجابات الخادم في هجمات التشويش. ونبحث عن تلك الاختلافات من خلال النظر إلى رموز الحالة، ووقت الاستجابة، وأحجام الاستجابة. كل هذه مقاييس غير مباشرة لمحتوى الاستجابة. بالطبع كخبراء اختبار اختراق لا نملك الوقت لقراءة محتوى آلاف الاستجابات من الخادم للبحث عن اختلافات في محتوى الاستجابة. لكن بالتأكيد يمكننا أن نجعل الخوارزميات تفعل ذلك نيابةً عنا.
هنا يأتي دور هذه الإضافة. فهي تستخدم تقنيات تجميع النصوص لتحليل محتوى الاستجابات وتصنيفها إلى مجموعات بناءً على تشابهها. وهذا يمنحك طريقة أخرى لعرض نتائج هجمات التشويش في intruder، وتحديد استجابات الخادم المختلفة بسرعة.
توفر Colonel Clustered خوارزميتين مختلفتين لتنفيذ تجميع الاستجابات. الخوارزمية الافتراضية سريعة نسبيًا، مع خوارزمية تحليل أعمق اختيارية تتفوق في اكتشاف القيم الشاذة، لكنها لا تتوسع جيدًا. حسنًا، لا تتوسع أي منهما جيدًا، سأتردد في إرسال 50 ألف استجابة إلى هذه الإضافة. الخوارزمية الأسرع/الافتراضية بتعقيد O(n^2)، بينما خوارزمية التحليل العميق بتعقيد O(n^3). لذا ضع ذلك في اعتبارك أثناء إرسال نتائج intruder إليها للمعالجة.
تقسيم واعٍ بالمحتوى (Content-Aware Tokenization): تفحص الإضافة أولاً ترويسة Content-Type لكل استجابة لتطبيق استراتيجية التقسيم الأكثر ذكاءً:
التجميع المسبق (Pre-Grouping): للبقاء سريعة حتى مع آلاف الاستجابات، تُجري الإضافة تمريرة واحدة لتجميع جميع الاستجابات المتطابقة تمامًا. تحسب تجزئة (hash) لمجموعة رموز كل استجابة وتجمع كل العناصر التي تشترك في نفس التجزئة. وهذا يعني أن خوارزمية التجميع المكلفة يجب أن تعمل فقط على المجموعة الأصغر بكثير من أجسام الاستجابات الفريدة.
خوارزميتا تجميع مزدوجتان: تقدم Colonel Clustered خوارزميتين متميزتين للتجميع:
الفحص السريع (Fast Scan - الافتراضي): تعمل خوارزمية عالية الأداء قائمة على DBSCAN تلقائيًا عند إرسال طلبات/استجابات متعددة إلى الإضافة.
التحليل العميق (Deep Analysis - تشغيل يدوي): الخوارزمية الهرمية الأصلية الأكثر كثافة حسابيًا متاحة عبر زر "Deep Analysis". هذا الخيار مصمم للسيناريوهات التي تتطلب منظور تجميع أكثر تفصيلاً وربما مختلفًا، باستخدام Average Linkage لتحسين تماسك المجموعات.
توحيد القيم الشاذة (Outlier Consolidation): بعد التجميع، تُعتبر أي مجموعة ناتجة تحتوي على عضو فريد واحد فقط قيمة شاذة. ثم يتم توحيد كل هذه القيم الشاذة في مجموعة واحدة ملائمة باسم "Outliers" في واجهة المستخدم.
يجب أن توفر هاتان الخوارزميتان طريقة سهلة لتحديد استجابات الخادم التي تختلف في المحتوى تلقائيًا، حتى عندما يكون حجم الاستجابة مقياسًا غير موثوق لاختلافات الاستجابة.
تحميل الإضافة:
إرسال الاستجابات للتحليل:
إجراء التحليل العميق (اختياري):
تحليل النتائج في واجهة الأربع أجزاء (Quad-Pane UI):
Request/Response Pair: الفهرس الأصلي للعنصر.Status Code: رمز حالة استجابة HTTP.Length: طول جسم الاستجابة بالبايت.Content-Type: ترويسة Content-Type للاستجابة.
يستخدم هذا المشروع Gradle. تحتاج إلى تثبيت JDK الإصدار 17 لبناء الإضافة.
git clone <repository-url>
cd ColonelClustered
./gradlew build
build/libs/ColonelClustered.jar.Drew Kirkpatrick
@hoodoer
[email protected]
يمكنك إيجادي في Blackthorne Consulting.
يُصدر هذا المشروع إلى الملكية العامة بموجب Unlicense. راجع ملف LICENSE للتفاصيل.