مضى على الشبكة و يوم من العطاء.
  • تحذير: يجب على كل روّاد الشبكة تشغيل برامج الاختراق داخل الأنظمة الوهمية وهي بهدف التعلم وحماية الأعضاء والتوعية بها

[ WalkTh ] شرح بيرب سويت الجزء الثاني - Burp Suite part 2

3b0-0d3b0-0d is verified member.

{ || مشرف قسم CTF || }
.:: طاقم المشرفين ::.

السمعة:

بالموضوع هاد راح نركز خصوصًا على الـ Repeater و الـ Intruder في الـ Burp Suite . بعد ما نكون فهمنا الأساسيات في شرح بيرب سويت الجزء الاول - Burp Suite part 1 راح نحكي أكثر عن مميزات أداة الـ Repeater و الـ Intruder

إذا كنت جديد على برنامج برب سويت أو ما خلصت الشرح الـ part 1 ، بنصحك تخلصها قبل ما تكمل الموضوع هاد. الغرفة الأولى بتثبت المعلومات الأساسية اللي لازم تكون عندك قبل ما تكمل في الموضوع وتزيد من تجربتك التعليمية.



راح نركز على النقاط التاليه 👇

1. الـ Repeate بالتفصيل , وارسال طلب للـ Repeate.
2.
الـ Inspector بالتفصيل
3. حل 3 Challenge
4. الـ Intruder بالتفصيل
5. الـ Positions
6. الـ payloads
7. الـ Introduction to Attack Types
8. الـ Sniper
9. الـ Battering Ram
10. الـ Pitchfork
11. الـ Cluster Bomb
12. مثال وحل 2 Challenge




الـ Repeate بالتفصيل.

هو عبارة عن حاجة بتسمحلك تغير وترسل طلبات لأي موقع بتختاره. يعني لو انت شايف طلب معين ممكن عن طريق الـ Repeate تغير فيه وتبعثه مره ثانيه للموقع. ولو مش لاقي طلب معين، بتقدر تعمل طلب جديد.

الـ Repeate بتفيدك جداً لما تكون بدك تجرب حاجة في المواقع وتعدل فيها. بتقدر تغير الطلبات وتبعثها أكتر من مرة. والشغلة الحلوة إنها عندها واجهة سهلة و شغلة ثانية منيحة الي هي إمكانية تشوف الرد من الموقع بشكل جرافيكي.


Showing a sample request in burp suite repeater

الواجهة بتكون فيها ستة حاجات رئيسية، زي ما موضح في الصورة:
  1. قائمة الطلبات ( Request List ): في أعلى الشاشة على اليسار، بتبينلك القائمة بكل الطلبات اللي بتبعتها للموقع. وبتقدر تتحكم بعدة طلبات في وقت واحد.​
  2. عناصر التحكم في الطلب ( Request Controls ): تحت قائمة الطلبات، خياراتها زي إرسال الطلب، أو إلغاء طلب جاري، وتصفح تاريخ الطلبات.
  3. عرض الطلب والرد ( Request and Response View ): الجزء هاد بوخد مساحة كبيرة في الواجهة وبيبينلك الطلب والرد. و بتقدر تعدل في الطلب وتبعثه مره ثانية ، والرد بظهر في نفس المكان.
  4. خيارات التصميم ( Layout Options ): في أعلى اليمين من عرض الطلب والرد، خيارات بتسمحلك تعدل شكل الواجهة على حسب رغبتك.
  5. الفاحص ( Inspector ): في الجهة اليمنى، هاي حاجة بتساعدك تحلل وتغير الطلبات بشكل أسهل من استخدام المحرر النصي.
  6. الهدف ( Target ): فوق الفاحص، في حقل اسمه "الهدف"، بتحدد العنوان اللي بدك تبعث له الطلبات. ولو الطلبات جاية من مكان تاني في برب سويت، بتتعبى تلقائي.

ما هي الأقسام التي تمنحنا تحكمًا أكثر سهولة في طلباتنا؟
Inspector

1704736216727.png

ارسال طلب الى الـ Repeate

في حال بدنا نرسل طلب يدوياً، بس الأكثر استخداماً هو نلتقط الطلب باستخدام الوحدة اللي اسمها proxy وبعدين نبعثها للـ Repeate عشان نعدل عليها ونرسلها مرة ثانية. لما نلتقط الطلب في البروكسي، نقدر نبعثه للـ Repeate إما بالضغط الزر الأيمن واختيار Send to Repeate ، أو باستخدام الاختصار Ctrl + R .

Request in the request view

لما نروح للـ Repeate ، نشوف إن الطلب اللي اخترناه في البروكسي صار متاح الآن في قسم Request . كل اللي محتاجينه هو زي المعلومات اللي في القسمين Target و Inspector . لما نضغط على زر الإرسال، يتم تعبئة قسم الـ Response بسرعة

Response view swiftly populates


إذا حابين نعدل على أي جزء من الطلب، بنقدر نكتب في قسم Request view ونضغط إرسال مرة ثانية. راح يحدّث قسم الرد على اليمين ويظهرلنا الرد. مثلا، لو غيرنا الاتصال ليكون مفتوح بدل مغلق ، راح يجيب لنا رد مع تروسة الاتصال مكتوب فيها حفظ الاتصال :

header containing the value keep-alive

وبعدين، بنقدر نستخدم زرار السجلات اللي على يمين زر الإرسال عشان نتنقل في تاريخ التعديلات اللي سويناها، ونروح للأمام أو للوراء على حسب اللي نحتاج.

ما هو العرض الذي سيتم ملؤه عند إرسال طلب من Proxy إلى Repeater ؟
Request

1704736230798.png



أدوات الفحص (Toolbar) في برنامج Repeater

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

Four buttons above the response box
  1. Pretty: الخيار الافتراضي، بوخذ الرد الأولي وبعمل له تنسيق بسيط عشان يكون أسهل للـ قراءة.
  2. Raw: بعرض الرد كما هو، بدون أي تنسيق إضافي.
  3. Hex: بيعرض الرد بتمثيل البايتات، مفيد لملفات البيانات الثنائية.
  4. Render: بسمح لنا نشوف الصفحة زي ما هي هراح تظهر في متصفح الويب.

في زر على اليمين يُسمى Show non-printable characters . هذا الزر بساعد على إظهار الحروف التي قد لا تظهر بوضوح بواسطة الخيارين الرئيسيين Pretty و Raw. يُستخدم هذا الخيار لرؤية الأحرف الخاصة مثل \r\n ، والتي تمثل عودة السطر وبداية سطر جديد في رد السيرفر. استخدام هذا الزر يجعلها واضحة وقابلة للتحليل بشكل أفضل.

ما الخيار الذي يسمح لنا بتصور الصفحة كما تظهر في متصفح الويب؟
Render

1704736243702.png



الـ Inspector

الـ Inspector هي ميزة إضافية في قسم الـ Repeater، واللي هو جزء من الـ Repeater module. يعني إنها بتفيدنا لما نكون بنشوف الطلبات والردود. الـ Inspector بتساعدنا نشوف الـ breakdown بطريقة منظمة للطلبات والردود، وكمان نجرب نشوف كيف التعديلات اللي بنعملها بتأثر على الـ raw versions تاعتها.
الـ Inspector بتشتغل في الـ Proxy والـ Repeater، بتكون في الجهة اليمين وبتعرض لنا قائمة بالمكونات اللي في الطلب والرد.
من ضمن الحاجات اللي ممكن نعدلها، الأقسام اللي للطلب ممكن نعدلها بشكل عام. زي قسم Request Attributes ، اللي بنقدر نعدل فيها على مكونات الطلب زي المكان، والطريقة، وبروتوكول الطلب. يعني بنقدر نغير المورد المطلوب، أو نغير الـ HTTP method من GET إلى حاجة تانية، أو نغير البروتوكول من HTTP/1 إلى HTTP/2.

في أقسام ثانية ممكن نشوفها أو نعدل فيها:

6c95db764fe7491d938485256fd1dd87.png
حل سؤال
ما القسم في Inspector المخصص لطلبات POST؟
Body Parameters

1704736264131.png



1 Challenge

عند فتح الموقع على الـ browser الخاص بـ burp suite
1704741571074.png
عند الضغط على
1704741688728.png


تظهر هذه الصفحه على burp suite


1704745444870.png


عند الضغط على زر الماوس الايمن (كلك يمين )
1704745870927.png



ثم ارسال الى الـ Repeater بفتح الصفحة هذه

1704791616318.png

كما هو مطلوب من التحدي هو اضافة header يسمى FlagAuthorised ووضع قيمته True هكذا

1704793810300.png


وعند الضغط على Send

1704795986302.png


او يمكنك ببساطة من الـ intercept اضافة الـ header والضغط على Forward

6773


حل السؤال
ما هو العلم الذي تتلقاه؟
THM{Yzg2MWI2ZDhlYzdlNGFiZTUzZTIzMzVi}​

1704796109114.png

2 Challenge
عند الذهاب الى الرابط http://( ip )/products كما يطلب التحدي، عند الضغط على see more نجد الرابط يحولنا الى
Screenshot 2024-01-10 170630.png


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

يمكن ذلك عن طريق استبدال الرقم 2 بأي رقم سالب مثلًا ....الخ

1705011320724.png

ما هي العلامة التي تتلقاها عندما تسبب خطأ 500 في نقطة النهاية؟

THM{N2MzMzFhMTA1MmZiYjA2YWQ4M2ZmMzhl}




3 Challenge

الفكرة إنك تحاول تخترق موقع على أساس إن فيه ثغرة في نظام قاعدة البيانات اللي بيستخدموه. الهدف هو تجيب معلومات عن الرئيس التنفيذي (CEO) من البيانات المخزنة في الداتابيز.

نجرب ندخل single qoute
( ' ) بدلا من الرقم لنرى اذا اعطى اي اخطاء او معلومات

1705012659403.png


الفكرة الان هي أنك تحاول تستفيد من هذه الثغرة SQL عشان تتلاعب في قاعدة البيانات

. المرحلة الثالية هي استخدام UNION SELECT وغيرها من الأوامر للوصول للبيانات اللي بدك اياها.
الآن من خلال الخطأ لدينا المعلومات التاليه
الـ people : اسم جدول موجود في قاعده البيانات
الـ firstName, lastName, pfpLink, role, bio : اسماء اعمدة موجودة في الجدول

عند وضع الـ Quere التاليه :

SQL:
-1 UNION ALL SELECT group_concat(column_name),null,null,null,null FROM information_schema.columns WHERE table_name="people"

يتم محاولة لاستعراض أسماء الأعمدة (column names) في الجدول. يعني، بعد ما تكتشف الثغرة وتعرف اسم الجدول، بتعرف أسماء الأعمدة في هذا الجدول.
1705079581342.png


يظهر لي اسم عامود ( notes )
عن طريق هذه الـ quere

SQL:
-1 UNION SELECT notes,null,null,null,null FROM people WHERE id = 1
الـ id = 1 الا وهو الشخص المستهدف
نستطيع سحب المعلومات التي بداخل النوتس
1705079870947.png

What is the flag?
THM{ZGE3OTUyZGMyMzkwNjJmZjg3Mzk1NjJh}


الـ Intruder
هي أداة قوية تمكنك من الهجمات التلقائية وتخصيصها حسب احتياجاتك. فيها إمكانية تعديل أجزاء معيّنة من الطلب وإجراء اختبارات متكرّرة باستخدام تغييرات في بيانات الإدخال. الـ Intruder مفيدة خصوصًا في مهام الـ Fuzzing والـ Brute-forcing ، حيث يحتاج الشخص لاختبار قيم مختلفة ضد هدف معيّن.
الـ Intruder بتساعدك تجرب الثغرات في المواقع. الفكره هي إنها بتسمحلك تعدل الطلبات تلقائيًا وتجرب بأشكال مختلفة لقيم الإدخال. ممكن تستخدمها عشان تجرب اشياء زي اختراق نماذج الدخول بتغيير اسم المستخدم وكلمة السر باستخدام قائمة كلمات، أو تجرب هجمات باستخدام قوائم كلمات لاختبار أماكن معينة في الموقع.

لكن إذا استخدمتها في نسخة برنامج Burp المجانية، بتكون بطيئة شوي مقارنة بالنسخة المدفوعة.
1705213635845.png

.
الواجهة اللي بتظهرلك لما تشتغل على الـ Intruder فيها أربع خيارات :

  1. الـ Positions : هاي بتسمحلك تختار نوع الهجوم وتعدل مكان إدخال القيم في الطلب.
  2. الـ Payloads : هنا تختار القيم اللي بدك تدخلها في الأماكن اللي اخترتها في القسم السابق ( Positions ). وممكن تستخدم خيارات ثانيه زي تحميل قيم من قائمة كلمات.
  3. الـ Resource Pool : مش مهمة كتير في النسخة المجانية، بتسمح بتوزيع الموارد بين مهام البرنامج الآلي.
  4. الـ Settings : هنا تقدر تعدل سلوك الهجوم وكيفية تعامل البرنامج مع النتائج.
سيتم شرحهن بالاسفل تابع
في أي علامة تبويب للـ Intruder يمكننا تحديد "نوع الهجوم" لهجومنا المخطط له؟
Positions

1705214820671.png



الـ Positions
Screenshot 2024-01-14 095508.png


في القسم هاد، راح تشوف إن برنامج Burp Suite بيحاول بشكل تلقائي يحدد المكان الأكثر احتمالية إنه يكون فيه ( يمكن حط فيه البيانات ) . الأماكن هاي بتتحدد باللون الأخضر ويتم إطارها بعلامات (§).


1705215003942.png

على اليمين في الشاشة، بتلاقي ازرار معينة:§ Add § / Clear § / Auto

  • زر الـ § Add : بيسمحلك تعّرف مكان جديد يدويًا ببساطة بالتحديد بالمحرر وبعدين تضغط الزر Add .
  • زر الـ § Clear : بشيل كل المكان اللي تم تحديده، وبعطيك مساحة خالية إنك تعّرف فيها مكانك بنفسك.
  • زر الـ § Auto : بيحاول بشكل تلقائي يحدد المكان بناءً على الطلب. هاي مفيدة إذا قبل مسحنا المكان اللي برنامج برب سويت كان محدده لنا، وبدنا نرجع نشوفه.

فيديو بسيط يوضح كيفيه عملها

Process of adding, clearing, and automatically reselecting positions

ما الرمز الذي يحدد بداية ونهاية الـ Payload ؟
§

1705215781662.png


الـ Payloads
1705216036163.png

نقدر نسوي ونهيئ payloads لهجومنا. هالجزء مقسم إلى أربعة أقسام:

1. الـ Payload Sets : هالقسم بسمحلنا نختار المكان اللي بدنا نهيئ فيه الـ payload ونختار نوع الـ payload اللي بدنا نستخدمه.

1. اذا استخدمنا أنواع الهجمات اللي بتسمح بـ payload واحد فقط (مثل Sniper أو Battering Ram ), راح يكون في الـ dropdown خيار واحد فقط، مهما كان عدد المواقع المحددة.
2. إذا استخدمنا أنواع هجمات تحتاج لـ payload sets متعددة (مثل Pitchfork أو Cluster Bomb)، راح يكون في الـ dropdown خيار لكل موقع.
عند تعيين أرقام في القائمة Payload Set لمواضع متعددة ( dropdown for multiple positions ) لازم نبدأ من الأعلى ونتحرك للأسفل ومن اليسار لليمين. مثلاً، لو عندنا مكانين §username=§pentester§&password=§Expl01ted الخيار الأول في القائمة راح يشير لحقل الـ username، والثاني راح يشير لحقل الـ password.


2. الـ Payload settings : هالقسم يوفر خيارات خاصة بنوع الـ payload المحدد للمجموعة الحالية . مثلا لما نستخدم نوع Simple list ، بنقدر نضيف أو نشيل payloads يدويًا من أو إلى المجموعة باستخدام مربع النص اللي فيه Add ، أو Paste lines ، أو Load payloads from a file .

زر الـ Remove بشيل السطر اللي محدد حاليًا،
زر الـ Clear بمسح القائمة كاملة.
لازم نكون حذرين لما نحمل قوائم ضخمة، لأنها قد تسبب توقف burp عن العمل. كل نوع من الـ payload راح يكون له خياراته ووظائفه.


3. الـ Payload Processing : في هاد القسم بنقدر نحدد قواعد يتم تطبيقها على كل payload في المجموعة قبل ما يتم إرسالها للهدف. على سبيل المثال، بنقدر نجعل كل كلمة تبدأ بحرف كبير، أو نتجاوز الـ payloads اللي تطابق نمط regex، أو نطبق تحويلات أو فلترة أخرى.

4. الـ Payload Encoding : هالقسم بسمحلنا نخصص خيارات التشفير للـ payloads. عادة، برب سويت بطبق تشفير URL تلقائيًا لضمان نقل الـ payloads بشكل آمن. بس في حالات قد تحتاج فيها نعدل سلوك التشفير. بنقدر نتجاوز خيارات التشفير الافتراضية برب سويت عن طريق تعديل قائمة الحروف المراد تشفيرها أو إلغاء تحديد خانة URL-encode these characters .باستخدام هذه الأقسام، بنقدر نصنع ونضبط مجموعات payloads لتناسب متطلبات هجماتنا. المستوى هاد من التحكم بسمحلنا نضبط الـ payloads بدقة لاختبار واستغلال فعال.

ما هي القاعدة Payload processing التي يمكننا استخدامها لإضافة أحرف في نهاية كل حمولة في المجموعة؟
Payload processing

1705236446198.png



الـ Introduction to Attack Types
أنواع لهجمات في برنامج Burp Suite Intruder. في البداية، لازم تعرّف إنو في تاب في البرنامج اسمه Positions، وهاد اللي بسمح لك تختار نوع الهجوم اللي بدك تستخدمه .

1705424569306.png


في أربعة أنواع مختلفة:

  1. الـ Sniper (القناص): هاي الطريقة الأكثر استخداماً، بتمر على كل الـ payloads اللي معاك وبتحط وحدة في كل مكان في الطلب. بتساعد في اختبار دقيق ومحدد.
  2. الـ Battering ram (المدفع): هاي بتبعث كل الـ payloads في نفس الوقت، كل payload في مكانها. بتفيد لما تحتاج تبعث payloads في نفس اللحظة.
  3. الـ Pitchfork (الشوكة): هاي بتسمحلك تختبر عدة مواقع في نفس الوقت، وكل موقع بيكون معاه payloads مختلفة. بتكون مفيدة لما تكون فيه باراميترات مختلفة بتحتاج اختبار منفصل.
  4. الـ Cluster bomb (القنبلة العنقودية): هاي بتجمع بين الـ Sniper و الـ Pitchfork. بتعمل هجوم زي الـ Sniper على كل مكان، بس بنفس الوقت بتختبر كل payloads من كل مجموعة. بتفيد لما المواقع مختلفة وكل مكان له payloads مختلفة وبدك تختبرهم كلهم سوا.
كل نوع من الهجمات هاي الها فوائد وممكن تستخدم في حالات اختبار مختلفة. فهم الاختلافات بينهم بساعدك تختار النوع المناسب حسب أهداف الاختبار.


ما هو نوع الهجوم الذي يمر عبر الـ payloads بإدخال payload واحدة في كل مرة في كل موضع محدد في الطلب؟
Sniper

1705425105952.png



الـ Sniper
الـ Sniper في برنامج بورب سويت هو نوع هجوم يستخدم كثير، خصوصًا لمهاجمة مكان واحد في الريكوست زي لما تحاول تخمن باسوورد أو تجرب قيم معينة في الـ API endpoints. بالمختصر الـ Sniper بياخد مجموعة من القيم، زي قائمة كلمات أو رقم معين، وبحط كل قيمة في مكان محدد في الريكوست.


عندنا مثال بسيط، لوكان عندك ريكوست زي هاد :


1705320836239.png

عندك مكانين محددين في الريكوست، واحد لل user name والثاني لل password.
البرنامج بختار كل قيمة من القائمة وبحطها في كل مكان في الترتيب.
لو عندك قائمة فيها ثلاث كلمات:
burp
suite
intruder

علمًا ان الاسم الدخل هو abood والباسورد qawfaefszd
البرنامج بعمل six requests :

  1. username=burp&password=qawfaefszd
  2. username=suite&password=qawfaefszd
  3. username=intruder&password=qawfaefszd
  4. username=abood&password=burp
  5. username=abood&password=suite
  6. username=abood&password=intruder

وضع الكلمات

1705320890702.png


ثم الضغط على START ATTACK

1705320939795.png


1705320960277.png

البرنامج برتب القيم بترتيب يعني ببدأ بالمكان الأول (اليوزرنيم) وبحط كل قيمة بالورد ليست فيه
بعدين بمشي للمكان الثاني (الباسوورد) وبعمل نفس الحكاية.


عدد ال requests الكلي اللي بعملها البرنامج بنحسب بالقانون:
عدد الكلمات بالمستند * عدد المكانين
3 * 2 = 6


حل الاسئلة
إذا كنت تستخدم Sniper للتشويش على ثلاث معلمات في طلب يحتوي على قائمة كلمات تحتوي على 100 كلمة، فما عدد الطلبات التي سيحتاج Burp Suite إلى إرسالها لإكمال الهجوم؟ 100 * 3 = 300

ما عدد مجموعات الحمولات التي سيقبلها Sniper للقيام بالهجوم؟
1

1705319357773.png



الـ Battering Ram
الـ Battering Ram attack مختلفة عن الـ Sniper لأنها بتحط نفس الـ payload في كل مكان في نفس الوقت
مو زي الـ Sniper اللي بحط كل payload في كل موقع لوحده.

نوع الهجوم Battering Ram مفيد لما بدنا نختبر نفس الـ payload ضد عدة مواقع دفعة واحدة بدون الحاجة للاستبدال التسلسلي.


لو بدك تعمل Battering Ram Intruder attack على الطلب المثال اللي فوق وعندك wordlist فيه كلمتين (admin و Guest)،
والمواضع في القالب كالتالي: username=abood&password=qawfaefszd


نضع الكلمات

1705321034075.png


نختار نوع الهجوم ونضغط على START ATTACK
1705321109060.png


1705321257857.png

ما هي المعلمات للطلب الأول الذي يرسله Burp Suite؟
username=admin&password=admin

1705321278298.png



الـ Pitchfork

يعتبر هجوم الـ Pitchfork شبيهًا بتشغيل هجمات Sniper متعددة بشكل متزامن.

بينما يستخدم Sniper مجموعة بيانات وحدة لاختبار جميع المواقع في وقت واحد
يستخدم Pitchfork مجموعة بيانات واحدة لكل موقع (حتى 20 موقعًا كحد أقصى) ويتكرر من خلالها جميعها في نفس الوقت.


لتوضيح فكرة الـ Pitchfork نحل مثال عليه

1705322783553.png

القائمة الأولى تحتوي على أسماء مستخدمين :
joel

harriet
alex

1705322749933.png


القائمة الثانيه تحتوي على كلمات المرور :
J03l
Emma1815
Sk1ll

1705322769431.png


نضغط على START ATTACK

1705323133819.png

1705323125354.png

1705323145408.png

ما هو الحد الأقصى لعدد مجموعات الـ Payload التي يمكننا تحميلها إلى Intruder في وضع Pitchfork؟
20​

1705323173715.png



الـ Cluster Bomb
الـ Cluster Bomb هو نوع من أنواع الهجمات اللي بتيحلنا اختيار مجموعات متعددة من البيانات التي يمكن إدخالها

حيث يمكن اختيار مجموعة من البيانات لكل مكان في الطلب (حتى 20 مكان).
على عكس نوع الهجوم Pitchfork حيث يتم اختبار جميع مجموعات البيانات بشكل متزامن

يقوم Cluster Bomb بتكرار كل مجموعة بيانات على حدة، مما يضمن اختبار كل تركيب ممكن للمعلومات المقدمة .


لتوضيح فكرة الـ Cluster Bomb نحل مثال عليه

1705324906981.png


القائمة الأولى تحتوي على أسماء مستخدمين :
joel

harriet
alex


1705324925895.png

القائمة الثانيه تحتوي على كلمات المرور :
J03l
Emma1815
Sk1ll


1705324962575.png


نضغط على START ATTACK

1705324985845.png


هذه هي الطلبات
1username=joel&password=J03l
2username=harriet&password=J03l
3username=alex&password=J03l
4username=joel&password=Emma1815
5username=harriet&password=Emma1815
6username=alex&password=Emma1815
7username=joel&password=Sk1ll
8username=harriet&password=Sk1ll
9username=alex&password=Sk1ll
كما هو موضح في الجدول، يقوم نوع الهجوم Cluster Bomb بأختبار كل احتمال عن طريق استبدال كل قيمة من كل مجموعة بيانات في الموضع المقابل في الطلب.

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


لدينا ثلاث مجموعات حمولة. المجموعة الأولى تحتوي على 100 سطر، والثانية تحتوي على سطرين، والثالثة تحتوي على 30 سطرًا.
ما هو عدد الطلبات التي سيقدمها الدخيل باستخدام مجموعات الحمولة هذه في هجوم بالقنابل العنقودية؟
6000

1705330621016.png


مثال عملي وهمي

عندنا ملف مضغوط اسمه BastionHostingCreds.zip ، فيه معلومات دخول تم تسريبها من موظفي Bastion Hosting بعد هجوم إلكتروني.

عندنا قائمة بأسماء مستخدمين مع كلمات مرور متوافقة، يعني بنقدر نستخدم هجوم credential-stuffing بدل هجوم brute-force العادي. هالطريقة أسرع وأفضل.


1705427991489.png

هذا رابط تنزيل الملف المضغوط
اضغط هنا

بعد تفعيل الـ intercept وارسال طلب تسجيل الدخول الى الـ intruder

1705428484533.png


نحدد الـ Positions على مكان الاسم والباسوورد :
نحدد على الاسم ونضغط على Add كما تعلمنا سابقا في قسم الـ Positions وكذلك الباسوورد

مثل الصور 👇

1705428643691.png


1705428651709.png


ثم نحدد نوع الهجوم

1705430157205.png

في قسم الـ payloads

نحدد في البايلود الاول قائمة بكلمات المستخدمين ملف ( usernames.txt )

1705430361066.png


نحدد في البايلود الثاني قائمة بكلمات السر بملف ( passwords.txt )

1705430423039.png





نجد ان الـ Length مختلف


1705430833250.png



ونجد بالاسفل ان ال Path قد تغير الى الـ support

بينما عندما نرى الـ Response على كلمة اخرى



1705431145114.png


نجد ان الـ Path مازال على صفحة الـ login


ما هي تركيبة اسم المستخدم وكلمة المرور التي تشير إلى محاولة تسجيل دخول ناجحة؟ تنسيق الإجابة هو "اسم المستخدم: كلمة المرور".
m.rerivera:letmein1

1705431404315.png

تحدي عملي 1 وهمي


لما ندخل للواجهة الرئيسية للدعم بالموقع ، بنشوف جدول فيه ticket مختلفة. إذا ضغطنا على أي وحده منهم ، بحولنا لصفحة بنقدر نشوف فيها الـ ticket كاملة. ولما ندرس هيك بنلاحظ إن الروابط فيها رقم ، بتكون بهاي الصيغة:


النظام رقمي، يعني التذاكر عندها أرقام صحيحة بسيطة مش معقدة ومش صعبة نحزرها. هالمعلومة مهمة لأنها بتعطينا احتمالين :


  1. التحكم في الوصول : ربما النهاية مضبوطة بشكل صحيح ومقيدة لنشوف بس التذاكر اللي مرتبطة بحسابنا.
  2. ثغرة الإشارة المباشرة غير الآمنة (IDOR) : في حالة النقطة الثانية، النهاية ممكن تكون مفتوحة وما فيها تحكم جيد، وهذا يؤدي لثغرة أمان معروفة باسم IDOR. وإذا كانت الحالة هي هكذا ، ممكن نستغل النظام ونقرأ جميع الـ ticket الموجودة، مهما كان مالكها.
لدراستها أكثر بتقدر تتابع الموضوع السابق


بنستخدم أداة Intruder عشان نجرب الأمان للرابط /support/ticket/NUMBER . هالخطوة راح تساعدنا نشوف إذا كانت النهاية مضبوطة صح أو فيها ثغرة IDOR.

ملحوظة: لازم نلتقط طلب واحنا مسجلين داخل النظام.


1705436432091.png
بالنسبة للاختبار، الهجوم المناسب هو: Fuzzing .


المرشح المثالي للـ payload (التذاكر مخزنة بقيم بين 1 و 100)، ومن ثم بداية الهجوم.


1705437950721.png

1705437976155.png

نحدد الموقع عند الرقم

1705436562931.png



نجد مواقع التي تعطي Status code = 200
هذا يعني انه تم اكمال الطلب بنجاح

200تم إكمال الطلب بنجاح.

1705438014853.png

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

1705438781485.png


1705438908335.png

ما هو نوع الهجوم الأنسب لهذه المهمة؟
Sniper

إما باستخدام علامة تبويب الاستجابة في نافذة نتائج الهجوم أو من خلال النظر إلى كل طلب ناجح (أي 200 رمز) يدويًا في متصفحك، ابحث عن التذكرة التي تحتوي على العلم.
THM{MTMxNTg5NTUzMWM0OWRlYzUzMDVjMzJl}

1705439017513.png


تحدي عملي 2 وهمي
بعد التقاط طلب تسجيل الدخول الـ Administration

1705472442458.png

زي ما بالصوره مبين انه اعطانا قيمه الـ Cookie و الـ loginToken

في الـ Intruder نقوم بالتحديد على اسم المستخدم والباسوورد كما فعلنا سابقا عن طريق التحديد على الاسم الذي ادخلته عند ارسال الطلب وعلى الباسوورد الذي ادخلته ثم الضغط على Add

1705478109246.png

عشان نجمع قيمة التوكن والكوكي اللي بتتغير لازم نعمل ماكرو.
الـ Macro هاي بتسمح لنا نكرر نفس الإجراءات عدة مرات. الإعدادات بتكون سهلة
لازم نعمل قواعد لمعالجة الجلسات تحدد استخدام الـ Macro.
هاد بنعمل بالاعدادات في قسم الـ Sessions ، هنعمل Rule جديدة.


1705473734932.png


عند الضغط على Add

1705474390139.png


نضيف خيار admin/login/

الان من قسم Session Handling Rules فوق قسم الـ Macros
1705474904386.png


اضغط على Add . بتظهر نافذة جديدة فيها : Details و Scope.
اجعل الخيارات كما بالصورة
1. جعل التحديد فقط على الـ Intruder
2. جعل الـ URL Scope على خيار Use suite scope

1705475386894.png
كما نذكر في الشرح السابق في الـ Part الاول من الـ burp suite

الـ Scope settings :

لو إنت بتشتغل في مجال الـBurp Proxy، أول اشي لازم تعرفها إنه لما تشتغل بالبروكسي، بتلتقط وبتسجل كل الحركات اللي بتصير على الشبكة، بس ممكن تكون هاي الحركات كتيرة وملهاش لازمة. هون بتيجي فكرة "السكوب"، إنك تحدد نطاق العمل ، أو بمعنى تاني تختار الويبسايتس اللي إنت بدك تراجعها بس. أسهل طريقة لعمل السكوب هي إنك تدخل على تاب الـ Target، تعمل كليك يمين على الويبسايت اللي إنت بدك تشتغل عليه، وتختار Add To Scope. هون بطلب منك إذا بدك توقف تسجيل أي حاجة مش موجودة في الـ Scope. عشان تتأكد من الـScope الخاص فيك بتدخل على تاب الـ Target بتلاقي Scope settings ، ومن هون بتقدر تتحكم في الـ Scope الخاص بك بإضافة أو إستبعاد عناوين الـIP أو الدومينز.

بس حتى لو أوقفت تسجيل الحركات اللي مش موجودة في الـ Scope، البروكسي بيوقف كل حاجة. عشان هيك لازم تدخل على تاب الـ Proxy وتختار And URL Is in target scope من قسم Intercept Client Requests . لما تشغل الخيار هاد، البروكسي بتجاهل أي حركة مش موجودة في الـ Scope، وهاد بخلي الشاشة في برنامج الـ Burp أنظف وأسهل للفهم.

والان نرجع لقسم الـ Ditails ونظغط على Add ثم على Run a macro

1705476277690.png


ونختار المايكرو الذي انشأناه مسبقاً

1705476396815.png
نقوم بتغيير الخيارين بالاسفل
نجعل التحديد على Update only the following parameters and headers

وبالضغط على Edit نضيف كلمة loginToken

وبالاسفل
نجعل التحديد على Update only the following cookies

وبالضغط على Edit نضيف كلمة session

فيديو توضيحي للاجراءات السابقه
Showing the added macro

هيك صار عندك ماكرو جاهز بتحدث التوكن والكوكي في كل ريكوست.
ثم في قسم الـ payloads

نحدد في البايلود الاول قائمة بكلمات المستخدمين ملف ( usernames.txt )

1705430361066.png


نحدد في البايلود الثاني قائمة بكلمات السر بملف ( passwords.txt )

1705430423039.png


ثم نضغط على Start Attack

1705478665826.png

نجد كل الطلبات تعطينا رمز 302 والذي يعني

302إعادة توجيه مؤقتة، تشير إلى أن التغيير مؤقت وقد يتغير مرة أخرى في المستقبل القريب.
عند ترتيب النتائج حسب الـ Length نجد بيانات الصالحة

ما هي تركيبة اسم المستخدم وكلمة المرور التي تشير إلى محاولة تسجيل دخول ناجحة؟ تنسيق الإجابة هو "اسم المستخدم: كلمة المرور".
o.bennett:bella1
1705478864602.png


 

المرفقات

  • 1704795601936.png
    1704795601936.png
    11.4 KB · المشاهدات: 466
  • 1704795951863.png
    1704795951863.png
    66.7 KB · المشاهدات: 136
  • 1704796039653.png
    1704796039653.png
    66.7 KB · المشاهدات: 151
  • 1705214453299.png
    1705214453299.png
    4.8 KB · المشاهدات: 135
  • 1705312930625.png
    1705312930625.png
    47.2 KB · المشاهدات: 146
  • 1705322807076.png
    1705322807076.png
    136.4 KB · المشاهدات: 136
  • 1705330606436.png
    1705330606436.png
    6.6 KB · المشاهدات: 139
  • 1705424652383.png
    1705424652383.png
    32 KB · المشاهدات: 140
  • 1705424667318.png
    1705424667318.png
    32 KB · المشاهدات: 137
  • BastionHostingCreds.zip
    BastionHostingCreds.zip
    3.4 KB · المشاهدات: 418
  • usernames.txt
    usernames.txt
    898 بايت · المشاهدات: 201
  • 1705428376054.png
    1705428376054.png
    72.1 KB · المشاهدات: 137
  • 1705428520884.png
    1705428520884.png
    81.5 KB · المشاهدات: 150
  • 1705437972679.png
    1705437972679.png
    10.4 KB · المشاهدات: 133
  • 1705473103729.png
    1705473103729.png
    42.4 KB · المشاهدات: 153
  • 1705475012377.png
    1705475012377.png
    18.5 KB · المشاهدات: 147
التعديل الأخير بواسطة المشرف:
والله تعريب متعوب عليه يا عبود، أحسنت الترجمة والشرح والتنسيق 🔥
ننتظر جديدك ❤️
 
بالموضوع هاد راح نركز خصوصًا على الـ Repeater و الـ Intruder في الـ Burp Suite . بعد ما نكون فهمنا الأساسيات في شرح بيرب سويت الجزء الاول - Burp Suite part 1 راح نحكي أكثر عن مميزات أداة الـ Repeater و الـ Intruder

إذا كنت جديد على برنامج برب سويت أو ما خلصت الشرح الـ part 1 ، بنصحك تخلصها قبل ما تكمل الموضوع هاد. الغرفة الأولى بتثبت المعلومات الأساسية اللي لازم تكون عندك قبل ما تكمل في الموضوع وتزيد من تجربتك التعليمية.



راح نركز على النقاط التاليه 👇

1. الـ Repeate بالتفصيل , وارسال طلب للـ Repeate.
2.
الـ Inspector بالتفصيل
3. حل 3 Challenge
4. الـ Intruder بالتفصيل
5. الـ Positions
6. الـ payloads
7. الـ Introduction to Attack Types
8. الـ Sniper
9. الـ Battering Ram
10. الـ Pitchfork
11. الـ Cluster Bomb
12. مثال وحل 2 Challenge




الـ Repeate بالتفصيل.

هو عبارة عن حاجة بتسمحلك تغير وترسل طلبات لأي موقع بتختاره. يعني لو انت شايف طلب معين ممكن عن طريق الـ Repeate تغير فيه وتبعته مره ثانيه للموقع. ولو مش لاقي طلب معين، بتقدر تعمل طلب جديد.

الـ Repeate بتفيدك جداً لما تكون بدك تجرب حاجة في المواقع وتعدل فيها. بتقدر تغير الطلبات وتبعثها أكتر من مرة. والشغلة الحلوة إنها عندها واجهة سهلة و شغله ثانيه منيحه الي هي إمكانية تشوف الرد من الموقع بشكل جرافيكي.


Showing a sample request in burp suite repeater

الواجهة بتكون فيها ستة حاجات رئيسية، زي ما موضح في الصورة:
  1. قائمة الطلبات ( Request List ): في أعلى الشاشة على اليسار، بتبينلك القائمة بكل الطلبات اللي بتبعتها للموقع. وبتقدر تتحكم بعدة طلبات في وقت واحد.​
  2. عناصر التحكم في الطلب ( Request Controls ): تحت قائمة الطلبات، خياراتها زي إرسال الطلب، أو إلغاء طلب جاري، وتصفح تاريخ الطلبات.
  3. عرض الطلب والرد ( Request and Response View ): الجزء هاد بوخد مساحة كبيرة في الواجهة وبيبينلك الطلب والرد. و بتقدر تعدل في الطلب وتبعثه مره ثانية ، والرد بظهر في نفس المكان.
  4. خيارات التصميم ( Layout Options ): في أعلى اليمين من عرض الطلب والرد، خيارات بتسمحلك تعدل شكل الواجهة على حسب رغبتك.
  5. الفاحص ( Inspector ): في الجهة اليمنى، هاي حاجة بتساعدك تحلل وتغير الطلبات بشكل أسهل من استخدام المحرر النصي.
  6. الهدف ( Target ): فوق الفاحص، في حقل اسمه "الهدف"، بتحدد العنوان اللي بدك تبعث له الطلبات. ولو الطلبات جاية من مكان تاني في برب سويت، بتتعبى تلقائي.




ارسال طلب الى الـ Repeate

في حال بدنا نرسل طلب يدوياً، بس الأكثر استخداماً هو نلتقط الطلب باستخدام الوحدة اللي اسمها proxy وبعدين نبعثها للـ Repeate عشان نعدل عليها ونرسلها مرة ثانية. لما نلتقط الطلب في البروكسي، نقدر نبعثه للـ Repeate إما بالضغط الزر الأيمن واختيار Send to Repeate ، أو باستخدام الاختصار Ctrl + R .

Request in the request view

لما نروح للـ Repeate ، نشوف إن الطلب اللي اخترناه في البروكسي صار متاح الآن في قسم Request . كل اللي محتاجينه هو زي المعلومات اللي في القسمين Target و Inspector . لما نضغط على زر الإرسال، يتم تعبئة قسم الـ Response بسرعة

Response view swiftly populates


إذا حابين نعدل على أي جزء من الطلب، بنقدر نكتب في قسم Request view ونضغط إرسال مرة ثانية. راح يحدّث قسم الرد على اليمين ويظهرلنا الرد. مثلا، لو غيرنا الاتصال ليكون مفتوح بدل مغلق ، راح يجيب لنا رد مع تروسة الاتصال مكتوب فيها حفظ الاتصال :

header containing the value keep-alive

وبعدين، بنقدر نستخدم زرار السجلات اللي على يمين زر الإرسال عشان نتنقل في تاريخ التعديلات اللي سويناها، ونروح للأمام أو للوراء على حسب اللي نحتاج.






أدوات الفحص (Toolbar) في برنامج Repeater

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

Four buttons above the response box
  1. Pretty: الخيار الافتراضي، بوخذ الرد الأولي وبعمل له تنسيق بسيط عشان يكون أسهل للـ قراءة.
  2. Raw: بعرض الرد كما هو، بدون أي تنسيق إضافي.
  3. Hex: بيعرض الرد بتمثيل البايتات، مفيد لملفات البيانات الثنائية.
  4. Render: بسمح لنا نشوف الصفحة زي ما هي هراح تظهر في متصفح الويب.

في زر على اليمين يُسمى Show non-printable characters . هذا الزر بساعد على إظهار الحروف التي قد لا تظهر بوضوح بواسطة الخيارين الرئيسيين Pretty و Raw. يُستخدم هذا الخيار لرؤية الأحرف الخاصة مثل \r\n ، والتي تمثل عودة السطر وبداية سطر جديد في رد السيرفر. استخدام هذا الزر يجعلها واضحة وقابلة للتحليل بشكل أفضل.



مشاهدة المرفق 6763


الـ Inspector

الـ Inspector هي ميزة إضافية في قسم الـ Repeater، واللي هو جزء من الـ Repeater module. يعني إنها بتفيدنا لما نكون بنشوف الطلبات والردود. الـ Inspector بتساعدنا نشوف الـ breakdown بطريقة منظمة للطلبات والردود، وكمان نجرب نشوف كيف التعديلات اللي بنعملها بتأثر على الـ raw versions تاعتها.
الـ Inspector بتشتغل في الـ Proxy والـ Repeater، بتكون في الجهة اليمين وبتعرض لنا قائمة بالمكونات اللي في الطلب والرد.
من ضمن الحاجات اللي ممكن نعدلها، الأقسام اللي للطلب ممكن نعدلها بشكل عام. زي قسم Request Attributes ، اللي بنقدر نعدل فيها على مكونات الطلب زي المكان، والطريقة، وبروتوكول الطلب. يعني بنقدر نغير المورد المطلوب، أو نغير الـ HTTP method من GET إلى حاجة تانية، أو نغير البروتوكول من HTTP/1 إلى HTTP/2.

في أقسام تانية ممكن نشوفها أو نعدل فيها:

6c95db764fe7491d938485256fd1dd87.png
  • Request Query Parameters : هاي للبيانات اللي بنبعثها للسيرفر عبر الرابط. على سبيل المثال، لو كان في طلب GET زي https://admin.tryhackme.com/?redirect=false ، فإن الـ (query parameter) 👇اللي اسمه redirect بتكون قيمته false.
  • Request Body Parameters : زي الـ query parameters، بس بتختص بالطلبات اللي بتستخدم HTTP method تسمى POST. أي بيانات بتنبعث كجزء من طلب POST بتنعرض في هالقسم، وبنقدر نعدل عليها قبل ما نبعثها مره ثانيه.
  • Request Cookies : القسم هاد فيه قائمة بالكوكيز اللي بتنبعث مع كل طلب، وبنقدر نعدل فيها.
  • Request Headers : بعطينا إمكانية نشوف ونعدل (نضيف أو نشيل) أي هيدرات بنبعثها في الطلبات. التعديل فيها بكون مفيد لما نحاول نشوف كيف السيرفر بيستجيب لهيدرات غير متوقعة.
  • Response Headers : القسم هاد بعرض لنا الهيدرات اللي بترجع من السيرفر ردًا على الطلب. ما بنقدر نعدل عليها لأننو ما عندنا تحكم في الهيدرات اللي السيرفر برجعها. هو بظهر بعد ما نبعث الطلب وناخد الرد.



1 Challenge

عند فتح الموقع على الـ browser الخاص بـ burp suite
مشاهدة المرفق 6765
عند الظغط على مشاهدة المرفق 6766

تظهر هذه الصفحه على burp suite


عند الظغط على كلك يمين ( زر الماوس الايمن )

مشاهدة المرفق 6768


ثم ارسال الى الـ Repeater بفتح الصفحه هذه


كما هو مطلوب من التحدي هو اضافه header يسمى FlagAuthorised ووضع قيمته True هكذا

مشاهدة المرفق 6772

وعد الظغط على Send

مشاهدة المرفق 6775

او يمكنك ببساطه من الـ intercept اضافه الـ header والظغط على Forward

6773


حل السؤال



مشاهدة المرفق 6777

2 Challenge
عند الذهاب الى الرابط http://( ip )/products كما يطلب التحدي عند الظغط على see more نجد الرابط يحولنا الى
مشاهدة المرفق 6787

كما يطلب التحدي ان يعطي الموقع خطأ 500



يمكن ذلك عن طريق استبدال الرقم 2 باي رقم سالب مثلا ....الخ

مشاهدة المرفق 6827




3 Challenge

الفكرة إنك تحاول تخترق موقع على أساس إن فيه ثغرة في نظام قاعدة البيانات اللي بيستخدموه. الهدف هو تجيب معلومات عن الرئيس التنفيذي (CEO) من البيانات المخزنة في الداتابيز.

نجرب ندخل
' بدلا من الرقم لنرى اذا اعطى اي اخطاء او معلومات



الفكرة الان هي أنك تحاول تستفيد من هذه الثغرة SQL عشان تتلاعب في قاعدة البيانات

. المرحلة الثالية هي استخدام UNION SELECT وغيرها من الأوامر للوصول للبيانات اللي بدك اياها.
الآن من خلال الخطأ لدينا المعلومات التاليه
الـ people : اسم جدول موجود في قاعده البيانات
الـ firstName, lastName, pfpLink, role, bio : اسماء اعمده موجوده في الجدول

عند وضع الـ Quere التاليه 👇

SQL:
-1 UNION ALL SELECT group_concat(column_name),null,null,null,null FROM information_schema.columns WHERE table_name="people"

يتم محاولة لاستعراض أسماء الأعمدة (column names) في الجدول. يعني، بعد ما تكتشف الثغرة وتعرف اسم الجدول، بتعرف أسماء الأعمدة في هذا الجدول.
مشاهدة المرفق 6842

يظهر لي اسم عامود ( notes )
عن طريق هذه الـ quere

SQL:
-1 UNION SELECT notes,null,null,null,null FROM people WHERE id = 1
الـ id = 1 الا وهو الشخص المستهدف
نستطيع سحب المعلومات التي بداخل النوتس



الـ Intruder
هي أداة قوية تمكنك من الهجمات التلقائية وتخصيصها حسب احتياجاتك. فيها إمكانية تعديل أجزاء معيّنة من الطلب وإجراء اختبارات متكرّرة باستخدام تغييرات في بيانات الإدخال. الـ Intruder مفيدة خصوصًا في مهام الـ Fuzzing والـ Brute-forcing ، حيث يحتاج الشخص لاختبار قيم مختلفة ضد هدف معيّن.
الـ Intruder بتساعدك تجرب الثغرات في المواقع. الفكره هي إنها بتسمحلك تعدل الطلبات تلقائيًا وتجرب بأشكال مختلفة لقيم الإدخال. ممكن تستخدمها عشان تجرب اشياء زي اختراق نماذج الدخول بتغيير اسم المستخدم وكلمة السر باستخدام قائمة كلمات، أو تجرب هجمات باستخدام قوائم كلمات لاختبار أماكن معينة في الموقع.

لكن إذا استخدمتها في نسخة برنامج Burp المجانية، بتكون بطيئة شوية مقارنة بالنسخة المدفوعه.
مشاهدة المرفق 6880

.
الواجهة اللي بتظهرلك لما تشتغل على الـ Intruder فيها أربع خيارات :

  1. الـ Positions : هاي بتسمحلك تختار نوع الهجوم وتعدل مكان إدخال القيم في الطلب.
  2. الـ Payloads : هنا تختار القيم اللي بدك تدخلها في الأماكن اللي اخترتها في القسم السابق ( Positions ). وممكن تستخدم خيارات ثانيه زي تحميل قيم من قائمة كلمات.
  3. الـ Resource Pool : مش مهمة كتير في النسخة المجانية، بتسمح بتوزيع الموارد بين مهام البرنامج الآلي.
  4. الـ Settings : هنا تقدر تعدل سلوك الهجوم وكيفية تعامل البرنامج مع النتائج.
سيتم شرحهن بالاسفل تابع



الـ Positions
مشاهدة المرفق 6884

في القسم هاد، راح تشوف إن برنامج Burp Suite بيحاول بشكل تلقائي يحدد المكان الأكثر احتمالية إنه يكون فيه ( يمكن حط فيه البيانات ) . الأماكن هاي بتتحدد باللون الأخضر ويتم إطارها بعلامات (§).


مشاهدة المرفق 6883
على اليمين في الشاشة، بتلاقي ازرار معينة:§ Add § / Clear § / Auto

  • زر الـ § Add : بيسمحلك تعّرف مكان جديد يدويًا ببساطة بالتحديد بالمحرر وبعدين تضغط الزر Add .
  • زر الـ § Clear : بشيل كل المكان اللي تم تحديده، وبعطيك مساحة خالية إنك تعّرف فيها مكانك بنفسك.
  • زر الـ § Auto : بيحاول بشكل تلقائي يحدد المكان بناءً على الطلب. هاي مفيدة إذا قبل مسحنا المكان اللي برنامج برب سويت كان محدده لنا، وبدنا نرجع نشوفه.

فيديو بسيط يوضح كيفيه عملها

Process of adding, clearing, and automatically reselecting positions




مشاهدة المرفق 6885


نقدر نسوي ونهيئ payloads لهجومنا. هالجزء مقسم إلى أربعة أقسام:

1. الـ Payload Sets : هالقسم بسمحلنا نختار المكان اللي بدنا نهيئ فيه الـ payload ونختار نوع الـ payload اللي بدنا نستخدمه.

1. اذا استخدمنا أنواع الهجمات اللي بتسمح بـ payload واحد فقط (مثل Sniper أو Battering Ram ), راح يكون في الـ dropdown خيار واحد فقط، مهما كان عدد المواقع المحددة.
2. إذا استخدمنا أنواع هجمات تحتاج لـ payload sets متعددة (مثل Pitchfork أو Cluster Bomb)، راح يكون في الـ dropdown خيار لكل موقع.
عند تعيين أرقام في القائمة Payload Set لمواضع متعددة ( dropdown for multiple positions ) لازم نبدأ من الأعلى ونتحرك للأسفل ومن اليسار لليمين. مثلاً، لو عندنا مكانين §username=§pentester§&password=§Expl01ted الخيار الأول في القائمة راح يشير لحقل الـ username، والثاني راح يشير لحقل الـ password.


2. الـ Payload settings : هالقسم يوفر خيارات خاصة بنوع الـ payload المحدد للمجموعة الحالية . مثلا لما نستخدم نوع Simple list ، بنقدر نضيف أو نشيل payloads يدويًا من أو إلى المجموعة باستخدام مربع النص اللي فيه Add ، أو Paste lines ، أو Load payloads from a file .

زر الـ Remove بشيل السطر اللي محدد حاليًا،
زر الـ Clear بمسح القائمة كاملة.
لازم نكون حذرين لما نحمل قوائم ضخمة، لأنها قد تسبب توقف burp عن العمل. كل نوع من الـ payload راح يكون له خياراته ووظائفه.


3. الـ Payload Processing : في هاد القسم بنقدر نحدد قواعد يتم تطبيقها على كل payload في المجموعة قبل ما يتم إرسالها للهدف. على سبيل المثال، بنقدر نجعل كل كلمة تبدأ بحرف كبير، أو نتجاوز الـ payloads اللي تطابق نمط regex، أو نطبق تحويلات أو فلترة أخرى.

4. الـ Payload Encoding : هالقسم بسمحلنا نخصص خيارات التشفير للـ payloads. عادة، برب سويت بطبق تشفير URL تلقائيًا لضمان نقل الـ payloads بشكل آمن. بس في حالات قد تحتاج فيها نعدل سلوك التشفير. بنقدر نتجاوز خيارات التشفير الافتراضية برب سويت عن طريق تعديل قائمة الحروف المراد تشفيرها أو إلغاء تحديد خانة URL-encode these characters .باستخدام هذه الأقسام، بنقدر نصنع ونضبط مجموعات payloads لتناسب متطلبات هجماتنا. المستوى هاد من التحكم بسمحلنا نظبط الـ payloads بدقة لاختبار واستغلال فعال.




الـ Introduction to Attack Types
أنواع لهجمات في برنامج Burp Suite Intruder. في البداية، لازم تعرّف إنو في تاب في البرنامج اسمه Positions، وهاد اللي بسمح لك تختار نوع الهجوم اللي بدك تستخدمه .

مشاهدة المرفق 6940

في أربعة أنواع مختلفة:

  1. الـ Sniper (القناص): هاي الطريقة الأكثر استخداماً، بتمر على كل الـ payloads اللي معاك وبتحط وحدة في كل مكان في الطلب. بتساعد في اختبار دقيق ومحدد.
  2. الـ Battering ram (المدفع): هاي بتبعث كل الـ payloads في نفس الوقت، كل payload في مكانها. بتفيد لما تحتاج تبعث payloads في نفس اللحظة.
  3. الـ Pitchfork (الشوكة): هاي بتسمحلك تختبر عدة مواقع في نفس الوقت، وكل موقع بيكون معاه payloads مختلفة. بتكون مفيدة لما تكون فيه باراميترات مختلفة بتحتاج اختبار منفصل.
  4. الـ Cluster bomb (القنبلة العنقودية): هاي بتجمع بين الـ Sniper و الـ Pitchfork. بتعمل هجوم زي الـ Sniper على كل مكان، بس بنفس الوقت بتختبر كل payloads من كل مجموعة. بتفيد لما المواقع مختلفة وكل مكان له payloads مختلفة وبدك تختبرهم كلهم سوا.
كل نوع من الهجمات هاي الها فوائد وممكن تستخدم في حالات اختبار مختلفة. فهم الاختلافات بينهم بساعدك تختار النوع المناسب حسب أهداف الاختبار.






الـ Sniper
الـ Sniper في برنامج بورب سويت هو نوع هجوم يستخدم كثير، خصوصًا لمهاجمة مكان واحد في الريكوست زي لما تحاول تخمن باسوورد أو تجرب قيم معينة في الـ API endpoints. بالمختصر الـ Sniper بياخد مجموعة من القيم، زي قائمة كلمات أو رقم معين، وبحط كل قيمة في مكان محدد في الريكوست.


عندنا مثال بسيط، لوكان عندك ريكوست زي هاد :



عندك مكانين محددين في الريكوست، واحد لليوزرنيم والثاني للباسوورد.
البرنامج بختار كل قيمة من القائمه وبحطها في كل مكان في الترتيب.
لو عندك قائمة فيها ثلاث كلمات:
burp
suite
intruder

علما ان الاسم الدخل هو abood والباسورد qawfaefszd
البرنامج بعمل ست ريكوستات:

  1. username=burp&password=qawfaefszd
  2. username=suite&password=qawfaefszd
  3. username=intruder&password=qawfaefszd
  4. username=abood&password=burp
  5. username=abood&password=suite
  6. username=abood&password=intruder

وضع الكلمات

مشاهدة المرفق 6905

ثم الظغط على START ATTACK

مشاهدة المرفق 6906


البرنامج برتب القيم بترتيب يعني ببدأ بالمكان الأول (اليوزرنيم) وبحط كل قيمة بالورد ليست فيه
بعدين بمشي للمكان التاني (الباسوورد) وبعمل نفس الحكاية.


عدد الريكوستات الكلي اللي بعملها البرنامج بنحسب بالقانون:
عدد الكلمات بالمستند * عدد المكانين
3 * 2 = 6


حل الاسئله





مشاهدة المرفق 6902



الـ Battering Ram
الـ Battering Ram attack مختلفة عن الـ Sniper لأنها بتحط نفس الـ payload في كل مكان في نفس الوقت
مو زي الـ Sniper اللي بحط كل payload في كل موقع لوحده.

نوع الهجوم Battering Ram مفيد لما بدنا نختبر نفس الـ payload ضد عدة مواقع دفعة واحدة بدون الحاجة للاستبدال التسلسلي.


لو بدك تعمل Battering Ram Intruder attack على الطلب المثال اللي فوق وعندك wordlist فيه كلمتين (admin و Guest)،
والمواضع في القالب كالتالي: username=abood&password=qawfaefszd


نضع الكلمات

مشاهدة المرفق 6908

نختار نوع الهجوم ونضغط على START ATTACK
مشاهدة المرفق 6909



الـ Pitchfork

يعتبر هجوم الـ Pitchfork شبيهًا بتشغيل هجمات Sniper متعددة بشكل متزامن.

بينما يستخدم Sniper مجموعة بيانات وحدة لاختبار جميع المواقع في وقت واحد
يستخدم Pitchfork مجموعة بيانات واحدة لكل موقع (حتى 20 موقعًا كحد أقصى) ويتكرر من خلالها جميعها في نفس الوقت.


لتوضيح فكرة الـ Pitchfork نحل مثال عليه

مشاهدة المرفق 6914
القائمة الأولى تحتوي على أسماء مستخدمين :
joel

harriet
alex

مشاهدة المرفق 6912


القائمة الثانيه تحتوي على كلمات المرور :
J03l
Emma1815
Sk1ll

مشاهدة المرفق 6913



الـ Cluster Bomb
الـ Cluster Bomb هو نوع من أنواع الهجمات اللي بتيحلنا اختيار مجموعات متعددة من البيانات التي يمكن إدخالها

حيث يمكن اختيار مجموعة من البيانات لكل مكان في الطلب (حتى 20 مكان).
على عكس نوع الهجوم Pitchfork حيث يتم اختبار جميع مجموعات البيانات بشكل متزامن

يقوم Cluster Bomb بتكرار كل مجموعة بيانات على حدة، مما يضمن اختبار كل تركيب ممكن للمعلومات المقدمة .


لتوضيح فكرة الـ Cluster Bomb نحل مثال عليه

مشاهدة المرفق 6920


القائمة الأولى تحتوي على أسماء مستخدمين :
joel

harriet
alex



القائمة الثانيه تحتوي على كلمات المرور :
J03l
Emma1815
Sk1ll


مشاهدة المرفق 6922

نضغط على START ATTACK

مشاهدة المرفق 6923

هذه هي الطلبات
1username=joel&password=J03l
2username=harriet&password=J03l
3username=alex&password=J03l
4username=joel&password=Emma1815
5username=harriet&password=Emma1815
6username=alex&password=Emma1815
7username=joel&password=Sk1ll
8username=harriet&password=Sk1ll
9username=alex&password=Sk1ll
كما هو موضح في الجدول، يقوم نوع الهجوم Cluster Bomb بأختبار كل احتمال عن طريق استبدال كل قيمة من كل مجموعة بيانات في الموضع المقابل في الطلب.

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





مثال عملي وهمي

عندنا ملف مضغوط اسمه BastionHostingCreds.zip ، فيه معلومات دخول تم تسريبها من موظفي Bastion Hosting بعد هجوم إلكتروني.

عندنا قائمة بأسماء مستخدمين مع كلمات مرور متوافقة، يعني بنقدر نستخدم هجوم credential-stuffing بدل هجوم brute-force العادي. هالطريقة أسرع وأفضل.



هذا هو رابط تنزيل الملف المضغوط 👇
اظغط هنا

بعد تفعيل الـ intercept وارسال طلب تسجيل الدخول الى الـ intruder 👇

مشاهدة المرفق 6954

نحدد الـ Positions على مكان الاسم والباسوورد :
نحدد على الاسم ونضغط على Add كما تعلمنا سابقا في قسم الـ Positions وكذلك الباسورد

مثل الصور 👇

مشاهدة المرفق 6956

في قسم الـ payloads

نحدد في البايلود الاول قائمه بكلمات المستخدمين ملف ( usernames.txt )

مشاهدة المرفق 6959

نحدد في البايلود الثاني قائمه بكلمات السر بملف ( passwords.txt )

مشاهدة المرفق 6960




نجد ان الـ Length مختلف


مشاهدة المرفق 6961


ونجد بالاسفل ان ال Path قد تغير الى الـ support

بينما عندما نرا الـ Response على كلمه اخرى



مشاهدة المرفق 6962


نجد ان الـ Path مازال على صفحه الـ login




مشاهدة المرفق 6963

تحدي عملي 1 وهمي


لما ندخل للواجهة الرئيسية للدعم بالموقع ، بنشوف جدول فيه ticket مختلفة. إذا ضغطنا على أي وحده منهم ، بحولنا لصفحة بنقدر نشوف فيها الـ ticket كاملة. ولما ندرس هيك بنلاحظ إن الروابط فيها رقم ، بتكون بهاي الصيغة:


النظام رقمي، يعني التذاكر عندها أرقام صحيحة بسيطة مش معقدة ومش صعبة نحزرها. هالمعلومة مهمة لأنها بتعطينا احتمالين :


  1. التحكم في الوصول : ربما النهاية مضبوطة بشكل صحيح ومقيدة لنشوف بس التذاكر اللي مرتبطة بحسابنا.
  2. ثغرة الإشارة المباشرة غير الآمنة (IDOR) : في حالة النقطة الثانية، النهاية ممكن تكون مفتوحة وما فيها تحكم جيد، وهذا يؤدي لثغرة أمان معروفة باسم IDOR. وإذا كانت الحالة هي هكذا ، ممكن نستغل النظام ونقرأ جميع الـ ticket الموجودة، مهما كان مالكها.
لدراستها أكثر بتقدر تتابع الموضوع السابق


بنستخدم أداة Intruder عشان نجرب الأمان للرابط /support/ticket/NUMBER . هالخطوة راح تساعدنا نشوف إذا كانت النهاية مضبوطة صح أو فيها ثغرة IDOR.

ملحوظة: لازم نلتقط طلب واحنا مسجلين داخل النظام.


بالنسبة للاختبار، الهجوم المناسب هو: Fuzzing .


المرشح المثالي للـ payload (التذاكر مخزنة بقيم بين 1 و 100)، ومن ثم بداية الهجوم.



نحدد الموقع عند الرقم

مشاهدة المرفق 6965


نجد مواقع التي تعطي Status code = 200
هذا يعني انه تم اكمال الطلب بنجاح



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

مشاهدة المرفق 6970

مشاهدة المرفق 6971





مشاهدة المرفق 6972

تحدي عملي 2 وهمي
بعد التقاط طلب تسجيل الدخول الـ Administration
زي ما بالصوره مبين انه اعطانا قيمه الـ Cookie و الـ loginToken

في الـ Intruder نقوم بالتحديد على اسم المستخدم والباسوورد كما فعلنا سابقا عن طريق التحديد على الاسم الذي ادخلته عند ارسال الطلب وعلى الباسورد التي ادخلتها ثم الضغط على Add


عشان نجمع قيمة التوكن والكوكي اللي بتتغير لازم نعمل ماكرو.
الـ Macro هاي بتسمح لنا نكرر نفس الإجراءات عدة مرات. الإعدادات بتكون سهلة
لازم نعمل قواعد لمعالجة الجلسات تحدد استخدام الـ Macro.
هاد بنعمل بالاعادات في قسم الـ Sessions ، هنعمل Rule جديدة.


مشاهدة المرفق 6976

عند الضغط على Add

مشاهدة المرفق 6977

نضيف خيار admin/login/

الان من قسم Session Handling Rules فوق قسم الـ Macros


اضغط على Add . بتظهر نافذة جديدة فيها : Details و Scope.
اجعل الخيارات كما بالصوره
1. جعل التحديد فقط على الـ Intruder
2. جعل الـ URL Scope على خيار Use suite scope

كما نذكر في الشرح السابق في الـ Part الاول من الـ burp suite



والان نرجع لقسم الـ Ditails ونظغط على Add ثم على Run a macro


مشاهدة المرفق 6982

ونختار المايكرو الذي انشأناه مسبقاً

مشاهدة المرفق 6983
نقوم بتغيير الخيارين بالاسفل
نجعل التحديد على Update only the following parameters and headers

وبالضغط على Edit نضيف كلمه loginToken

وبالاسفل
نجعل التحديد على Update only the following cookies

وبالضغط على Edit نضيف كلمه session

فيديو توضيحي للاجراءات السابقه
Showing the added macro

هيك صار عندك ماكرو جاهز بتحدث التوكن والكوكي في كل ريكوست.
ثم في قسم الـ payloads

نحدد في البايلود الاول قائمه بكلمات المستخدمين ملف ( usernames.txt )

مشاهدة المرفق 6959

نحدد في البايلود الثاني قائمه بكلمات السر بملف ( passwords.txt )

مشاهدة المرفق 6960


ثم نضغط على Start Attack

مشاهدة المرفق 6985

نجد كل الطلبات تعطينا رمز 302 واللذي يعني


عند ترتيب النتائج حسب الـ Length نجد بيانات الصالحه


بارك الله فيك ياعبود شرح جبّار والله!
ننتظر جديدك بإذن الله + تم التقييم
تقبل مروري​
 
ما شاء الله عبود
و نعلن أن عبود قد عاد و بقوة 🔥
 
بيرفكت ماشالله
يعطيك العافية
 

آخر المشاركات

فانوس

رمضان
عودة
أعلى