






السمعة:
- إنضم17 يونيو 2023
- المشاركات 515
- الحلول 10
- مستوى التفاعل 1,106
- النقاط 93
رح نتكلم عن Decoder ، Comparer ، Sequencer ، Organizer . هالأدوات بتساعدك في تعامل مع النصوص المشفرة، وبتقارن بين بيانات مختلفة، وبتحلل العشوائية في الرموز الملتقطة , ورح نتكلم عن الـ Extensions وطريقة استخدامها لتوسيع وظائف الـ Burp
رح نركز على النقاط التالية

1. الـ Decoder بالتفصيل , Encoding / Decoding / Hashing
2. الـ Comparer بالتفصيل
3. الـ Sequencer بالتفصيل , Live Capture / Analysis
4. الـ Organizer بالتفصيل
5. الـ Extensions بالتفصيل , Interface / BApp Store / Jython / API
الـ Decoder بالتفصيل
الـ Decoder يعطيك القدرة على أنك تعدل البيانات و تفك تشفير البيانات اللي تم التقاطها أثناء الهجوم و يتيح لك أيضًا تشفير بياناتك تستعدّها للإرسال للهدف. و يعطيك خاصية توليد مجموعات هاش للبيانات، وميزته الذكي اللي بحاول يفك تشفير البيانات تلقائيًا حتى ترجع نص عادي.
للوصول للـ Decoder :
الواجهة فيها خيارات كثيرة. في الصندوق اللي فوق، بتقدر تختار إذا كان يعتبر الإدخال نص أو قيم بايت عشان يشفره بناءً على ذلك. وكلما تحركت للأسفل، بتلقى قوائم منسدلة بتسمح لك بالتشفير، فك التشفير، أو توليد هاش للإدخال. وفي النهاية، بيجيك الديكود الذكي اللي بحاول يفك تشفير الإدخال.

ما هي الميزة التي تحاول فك تشفير الإدخال تلقائيًا؟ Smart decode
Encoding/Decoding
مصطلحات مهمة في القسم 
الـ Plain : النص العادي قبل أي تحويل.
الـ URL : تشفير عناوين الويب لضمان نقل البيانات بأمان. مثال: تشفير علامة / يحولها إلى %2F في تشفير العنوان.
الـ HTML : تشفير الرموز الخاصة في Html . مثال فك تشفير علامة الاقتباس يتطلب إدخال النسخة المشفرة واختيار فك تشفير ك Html .
الـ Base64 : تحويل البيانات إلى تنسيق يتوافق مع ASCII.
الـ ASCII Hex : تحويل البيانات بين التمثيل الرقمي والهكساديسيمال. مثال: ASCII يتحول إلى 4153434949 .
الـ Hex, Octal, and Binary : تطبيق على إدخال رقمي، يحول بين التمثيل العشري ، الهكساديسيمال ، الثماني ، والثنائي .
الـ Gzip : ضغط البيانات قبل إرسالها. يسمح الديكودر بالتشفير والفك المسون يدوياً.
يمكن دمج هذه الطرق. مثال: يمكن تحويل عبارة إلى أسكي هكس ومن ثم إلى الثماني.

تنسيق الهكس : هي ميزة مفيدة لتحرير البيانات بصورة بايت ببايت، خاصةً عند العمل مع ملفات ثنائية أو بيانات غير ASCII وتكون ضرورية احياناً.

على الرغم من أنها ليست مثالية، إلا أن هذه الميزة يمكن أن تكون حلاً سريعًا لفك تشفير بيانات مجهولة.

حل أسئلة
يقوم Base64 بتشفير العبارة : Let's Start Simple
ما هي النسخة المشفرة base64 من هذا النص؟
TGV0J3MgU3RhcnQgU2ltcGxl
فك تشفير هذه بيانات الـ URL هذه هي %4e%65%78%74%3a%20%44%65%63%6f%64%69%6e%67
ما هو النص العادي الذي تم إرجاعه؟
Next: Decoding
استخدم فك التشفير الذكي لفك تشفير هذه البيانات %3%37
ما هو النص الذي تم فك شفرته؟
47
قم بتشفير هذه العبارة Encoding Challenge
ابدأ بتشفير base64 خذ مخرجات هذا وقم بتحويله إلى ASCII Hex وأخيرًا، قم بتشفيرها على الشكل octal
ما هي السلسلة النهائية؟
24034214a720270024142d541357471232250253552c1162d1206c
Hashing
يمكنك فهم الهاش بشكل كامل من هنا :
Hashing تعريف بِمفهوم الـ
🌸 بسم الله الرحمن الرحيم 🌸 رح أشرح بشكل مُبسَّط عن مفهوم ال Hashing : تخيلوا معي قبل كل شي انه انا مثلا عندي ساعة غالية علي وبحبها ، وانا حاسّة انه في شخص بستخدمها وبلبسها بدون علمي وبس يخلّص برجعها ، فخلص فكرت وقررت انه لازم اتأكد هل فعلاً في شخص بستخدمها بدون علمي او انا غلطانه ، حتى اتأكد...

الديكودر يسمح لنا بإنشاء هاشات للبيانات مباشرة ضمن برب سويت
يعمل بنفس طريقة تشفير/فك تشفير الخيارات التي تم مناقشتها سابقًا. على وجه التحديد ننقر على قائمة الهاش ونختار خوارزمية من القائمة
باستخدام وحدة فك التشفير، ما هو تجزئة SHA-256 لعبارة !Let's get Hashing
قم بتحويل هذا إلى سلسلة ASCII Hex للإجابة على هذا السؤال.
6b72350e719a8ef5af560830164b13596cb582757437e21d1879502072238abe
قم بإنشاء هاش MD4 للعبارة Insecure Algorithms
قم بتشفير هذا كـ base64 (وليس ASCII Hex) قبل الإرسال
TcV4QGZZN7y7lwYFRMMoeA==
قم بتنزيل الملفات التاليه :
شخص مجنون قام بالعبث بمفتاح SSH الخاص بي! هناك أربعة مفاتيح في الملف ، وليس لدي فكرة أيها الحقيقي. الهاش MD5 لمفتاحي هو 3166226048d6ad776370dc105d40d9f8 هل يمكنك العثور عليه لي؟
عند التجربه نجد أنه الثالث
ما هو اسم المفتاح الصحيح؟
key3
على نظام لينكس يمكن التأكد من الحل عن طريق الأمر التالي
md5sum key3
الـ Comparer بالتفصيل
المقارن كما يوحي الاسم يتيح لنا مقارنة قطعتين من البيانات سواء كانت بكلمات ASCII أو بالبايتات

القسم الأول يظهر العناصر التي سيتم مقارنتها عند تحميل البيانات إلى المقارن تظهر كصفوف في هذه الجداول. يمكننا اختيار مجموعتين للمقارنة.
القسم العلوي الأيمن يتيح لنا خيارات لـ
لصق البيانات من الحافظة Paste
تحميل البيانات من ملف Load
إزالة الصف الحالي Remove
مسح جميع المجموعات Clear
الجزء الأسفل الأيمن يمكننا اختيار مقارنة البيانات بين الكلمات أو البايتات لا يهم أي من هذه الأزرار تختار في البداية لأنه يمكن تغييرها لاحقًا.
يمكننا أيضًا تحميل البيانات إلى المقارن من وحدات برب سويت الأخرى ( التي تم شرحها في الاجزاء السابقة ) عبر النقر بزر الماوس الأيمن واختيار Send to Comparer

- البيانات المقارنة تشغل معظم النافذة ويمكن عرضها إما في شكل نصي أو هكس يعتمد التنسيق الأولي على ما إذا كنا قد اخترنا Words أو Bytes.
- في أسفل النافذة يظهر جدول يبين الفروقات بين العناصر المقارنة سواء كانت كلمات أو بايتات يتضمن هذا الجدول معلومات حول الموقع القيمة في الكلمة أو البايت والفرق بينهما.
- الخيارات في أسفل النافذة تسمح لنا بتغيير كيفية عرض البيانات (نص أو هكس) وتحديد الحجم الذي يظهر في النص ( كلمة أو بايت ).
- القسم الأيمن العلوي يعرض إحصائيات عن المقارنة مثل عدد الكلمات أو البايتات المختارة والفروقات.
مثال
نجرب المقارنه بين كلمتين Hello, World! و Hola, Mundo! ونجد الإختلافات بينهم
مثال 2
نرسل الطلب إلى الريبيتر بعد التسجيل بدخول بأي اسم وهمي ثم أرسل الرد إلى المقارن ثم قم بتغير اسم المستخدم والباسورد إلى هذه

support_admin
w58ySK4W
مثال الفيديو

الـ Sequencer بالتفصيل
الـ Sequencer هي أداة بتسمحلنا نتتبع الفتره أو الفتره العشوائية للـ tokens
الـ Tokens هي سلاسل تُستخدم لتحديد شيء ما ويجب أن يتم إنشاؤها في طريقة آمنة من الناحية التشفير يمكن أن تكون هذه الـ Tokens مثل الـ session cookies أو tokens لمكافحة هجمات Cross-Site Request Forgery (CSRF) المستخدمة لحماية إرسال النماذج
إذا لم تتم إنشاء هذه الـ Tokens بشكل آمن، فإنه يمكننا التنبؤ بقيم الـ Tokens القادمة. يمكن أن تكون الآثار كبيرة على سبيل المثال إذا كان الـ Token المعني يستخدم لإعادة تعيين كلمة المرور
لدينا طريقتين رئيسيتين لتحليل الـ Tokens باستخدام الـ Sequencer
- الـ Live Capture هذه هي الطريقة الأكثر شيوعاً وهي الجزء الفرعي الافتراضي للـ Sequencer يتيح لنا الـ Live Capture تمرير طلب ( سيؤدي إلى إنشاء Token ) إلى Sequencer للتحليل , مثلا بدنا نمرر طلب POST علمًا أن الخادم سيستجيب بـ cookie بعد تمرير الطلب يمكننا أن نوجه Sequencer لبدء Live Capture سيقوم ثم بجعل نفس الطلب آلاف المرات تلقائيًا مخزنًا الـ token التي تم إنشاؤها للتحليل. بعد جمع عدد كاف من العينات نتوقف عن الـ Sequencer ونسمح له بتحليل الـ Tokens التي تم التقاطها
- الـ Manual Load تتيح لنا هذه تحميل قائمة من الـ tokens المولدة مسبقًا مباشرة إلى الـ Sequencer للتحليل , استخدام Manual Load يعني أنه ليس علينا أن نقوم بعمل آلاف الطلبات إلى هدفنا مما قد يكون ضاجة ومكلفًا من حيث الموارد
ما الذي يسمح لنا Sequencer بتقييمه؟
entropy
Live Capture
عند الدخول إلى الموقع http://(IP)/admin/loginبعد إدخال أي معلومات وهمية والتقاط الطلب كما تعلمنا مسبقاً وإرسال الطلب إلى الـ Sequencer
في قسم Token Location Within Response يمكننا اختيار بين Cookie ، Form field ، Custom location نظرًا لأننا نختبر loginToken في هذه الحالة، حدد زر Form field واختر loginToken من القائمة المنسدلة


ما هي الجودة الإجمالية للعشوائية المقدرة؟
excellent
Analysis
الآن، بعد جمع عدد معين من الـ tokens التي تم إنشاؤها في الخطوات السابقة.نقسم التقرير إلى أربعة أقسام رئيسية
أولها هو ملخص النتائج
النتيجة الكلية (Overall result) يعطي تقييمًا واسعًا لأمان آلية إنشاء الـ token في هذه الحالة يشير مستوى العشوائية إلى أن الـ tokens تم إنشاؤها بشكل آمن على الأرجح
العشوائية الفعّالة (Effective entropy) تقيس هذه العشوائية فعالية الـ tokens العشوائية الفعّالة التي تبلغ 117 بتًا هي عالية نسبيًا مما يشير إلى أن الـ tokens هي عشوائية بما يكفي وبالتالي آمنة ضد التنبؤ أو هجمات البروتفورس.
الموثوقية (Reliability) يعني مستوى الأهمية 1٪ أن هناك 99٪ ثقة في دقة النتائج هذا المستوى من الثقة هو عالٍ جدًا، مما يوفر ضمانًا بدقة تقدير العشوائية الفعالة.
العينة (Sample) يقدم هذا تفاصيل حول الـ tokens التي تم تحليلها خلال عملية اختبار العشوائية بما في ذلك عدد الـ tokens وخصائصها.
على الرغم من أن تقرير الملخص غالبًا ما يقدم معلومات كافية لتقييم أمان آلية إنشاء الـ token إلا أنه من المهم أن نتذكر أن التحقيق الإضافي قد يكون ضروريًا في بعض الحالات. يمكن أن تقدم التحليل على مستوى الحرف ومستوى البت تفاصيل أكثر دقة حول عشوائية الـ tokens خاصةً عندما يثير نتائج الملخص مخاوف محتملة.
في حين أن تقرير العشوائية يمكن أن يوفر مؤشرًا قويًا على أمان آلية إنشاء الـ token إلا أنه يحتاج إلى دليل أكثر تحديدًا. قد تؤثر عوامل أخرى أيضًا على أمان الـ token وطبيعة الاحتمالات والإحصائيات تعني أن هناك دائمًا درجة من عدم اليقين
الـ Organizer بالتفصيل
هي مصممة لمساعدتك في تخزين وتوثيق نسخ من طلبات HTTP قد ترغب في العودة إليها لاحقًا , يمكن أن تكون هذه الأداة مفيدة بشكل خاص لتنظيم سير عمل اختبار الاختراق الخاص بك.
بعض ميزاتها الرئيسية
1.
يمكنك

1. تخزين الطلبات التي تريد التحقق منها لاحقًا
2. حفظ الطلبات التي قد حددتها بالفعل كمثيرة للاهتمام
3. حفظ الطلبات التي ترغب في إضافتها إلى تقرير لاحقًا
2. يمكنك إرسال طلبات HTTP من وحدات Burp الأخرى مثل Proxy أو Repeater يمكنك القيام بذلك عن طريق النقر بزر الماوس الأيمن على الطلب وتحديد Send to Organizer أو باستخدام مفتاح الاختصار الافتراضي Ctrl + O
كل طلب HTTP ترسله إلى الـ Organizer هو نسخة للقراءة فقط من الطلب الأصلي المحفوظ من النقطة التي أرسلتها اليه
تخزن الطلبات في جدول والذي يحتوي على أعمدة كالآتي :
رقم فهرس الطلب و
وقت إجراء الطلب و
حالة سير العمل و
اي وحده من Burp التي تم إرسال الطلب منها و
طريقة HTTP و
اسم الخادم المضيف و
مسار ملف URL و
سلسلة الاستعلام URL و
عدد المعلمات في الطلب و
رمز حالة HTTP للاستجابة و
طول الاستجابة بالبايت و
أي ملاحظات قمت بإضافتها

يُمكنك القيام بعمليات البحث داخل الطلب أو الاستجابة، ببساطة حدد الطلب واستخدم شريط البحث المتاح أسفل الطلب.
الـ Extensions بالتفصيل
Interface
هي واجهة تعرض لك قائمة بالإضافات المثبتة في الأداة

النقاط المهمة في الواجهة
1. قائمة الإضافات في الأعلى، فيه مربع يعرض لك قائمة بالإضافات المثبتة حاليًا في Burp Suite للمشروع الحالي، ويمكنك تفعيل أو تعطيل كل إضافة على حدة.
2. إدارة الإضافات في الجهة اليسرى للواجهة، فيه خيارات لإدارة الإضافات:
- إضافة Add تستخدم هذا الزر لتثبيت إضافات جديدة من ملفات على جهازك ملفات مثل وحدات برمجية مُخصصة أو ملفات حصلت عليها من مصادر خارجية غير متاحة في متجر BApp الرسمي
- إزالة Remove زر يتيح لك إلغاء تثبيت الإضافات المحددة
- أعلى / أسفل Up / Down هذه الأزرار تتحكم في ترتيب الإضافات المثبتة , الترتيب يحدد تسلسل تنفيذ الإضافات عند المعالجة , الإضافات تُطبق بترتيب تنازلي بدءًا من الأعلى وصولًا للأسفل. الترتيب أمر مهم خاصةً عند التعامل مع إضافات تقوم بتعديل الطلبات حيث قد تتعارض بعضها مع بعض أو تتداخل
3. تفاصيل / نتائج / وأخطاء في أسفل النافذة، هناك أقسام للإضافة المحددة حاليًا:
- تفاصيل (Details): تعرض معلومات حول الإضافة المحددة، مثل اسمها وإصدارها ووصفها.
- نتائج (Output): تظهر هذه القسم نتائج أو إخراج يمكن أن تُنتجه الإضافة أثناء تنفيذها.
- أخطاء (Errors): إذا واجهت الإضافة أي أخطاء أثناء التنفيذ، ستُظهر هنا. يمكن أن يكون ذلك مفيدًا لتصحيح الأخطاء وحل مشاكل الإضافة.
هل يتم استدعاء الإمتدادات بترتيب تصاعدي (A) أو تنازلي (D)؟
D
BApp Store
يوفر متجر التطبيقات BApp Store إمكانية اكتشاف ودمج الإضافات الرسمية بسهولة في الأداة , يمكن كتابة الإضافات بلغات متنوعة حيث تكون اللغتين الأكثر شيوعًا هي Java و Python , تتكامل الإضافات بلغة Java تلقائيًا مع Burp Suite بينما تتطلب الإضافات بلغة Python مترجم Jythonأولاً نقوم بتثبيت إضافة Request Timer التي كتبها Nick Taylor تمكّننا الإضافة من تسجيل الوقت الذي يستغرقه كل طلب لاستلام رد , هذه الوظيفة مفيدة بشكل خاص للتعرف على الثغرات المرتبطة بالوقت والاستفادة منها على سبيل المثال إذا استغرقت نموذج تسجيل الدخول ثانية إضافية لمعالجة الطلبات باستخدام أسماء مستخدم صالحة مقارنة بتلك الغير صالحة يمكننا استخدام الفروق في الوقت لتحديد أي الأسماء صالحة

اتبع هذه الخطوات لتثبيت إضافة Request Timer من متجر BApp :
- انتقل إلى علامة تبويب BApp Store
- استخدم وظيفة البحث للعثور على Request Timer
- انقر على الإضافة لعرض المزيد من التفاصيل.
- انقر على زر التثبيت install
Jython
كيفية استخدام لغة البرمجة بايثون في برنامج Burp Suite عن طريق استخدام Jython وهذه عبارة عن Java implementation للـ Python.الخطوات لأستخدام Python modules في برنامج Burp Suite
- افتح برنامج Burp Suite وانتقل إلى Extensions ثم اذهب إلى الإعدادات في قسم ابحث عن الخانة اللي اسمها Location of Jython standalone JAR file وحدد مكان الملف اللي حملته
ملاحظة: الطريقة هاي لإضافة Jython لـ Burp Suite نفسها لكل الأنظمة ، عشان جافا تكنولوجيا متعددة المنصات.
API
في قسم الـ Extensions بتقدر تطور وتربط إضافاتك مع Burp Suite بالقسم هاد في API endpoints كثيرة بتتيحلك تكون وتدمج إضافاتك مع Burp Suite. كل نقطة في الجهة اليسار تمثل API endpoints مختلف بتقدر تستخدمه من الإضافات اللي بتكتبها.بالنسبة للإضافات اللي بتكتبها بتقدر تستخدم لغات متعددة مثل :
- جافا بشكل طبيعي بتقدر تستخدم جافا مباشرة لكتابة الإضافات وبتستفيد من الـ APIs القوية المتاحة.
- بايثون من خلال Jython بتقدر تستخدم Jython كما تحدثت عنه سابقا
- روبي من خلال JRuby بتقدر تستخدم JRuby
المرفقات
-
1706796548684.png32.9 KB · المشاهدات: 154
-
2024-02-01 17-21-03.gif4.2 MB · المشاهدات: 153
-
keys.zip8.9 KB · المشاهدات: 429
-
key4.txt3.3 KB · المشاهدات: 203
-
1706811784522.png40.1 KB · المشاهدات: 144
-
1706811898176.png94.4 KB · المشاهدات: 147
-
1706873550918.png27.2 KB · المشاهدات: 131
-
1706882400620.png47.4 KB · المشاهدات: 133
التعديل الأخير بواسطة المشرف: