🧪 LAB 3: تعداد أفعال HTTP (HTTP Method Enumeration Lab

🎯 الهدف الأساسي: تحديد أفعال HTTP المسموح بها لتطبيق ويب معين (صفحة رئيسية، صفحة تسجيل دخول، صفحة منشورات، مجلد رفع) باستخدام Dirb و Curl و Burp Suite، واكتشاف إمكانيات رفع/حذف الملفات.

🔧 الأدوات المستخدمة:

  • Firefox (مع إضافة FoxyProxy)

  • Dirb

  • Curl

  • Burp Suite (مكون Proxy و Repeater)

  • echo (لإنشاء ملفات)

  • wc -m (لعد الحروف)

📜 خطوات التنفيذ:

  1. تعداد الأدلة باستخدام Dirb (لجمع معلومات أولية):

    • الأمر الأساسي لـ Dirb: dirb [Target URL] [Wordlist Path]

    • لو نفذت الأمر dirb https://target-1، فسيبدأ Dirb في البحث عن المجلدات والملفات المخفية.

    • لو ظهرت مجلدات مثل css, js, images, uploads, فهذه مجلدات مثيرة للاهتمام يجب فحصها.

  2. تعداد أفعال HTTP باستخدام Curl:

    • الأمر الأساسي لـ Curl: curl -X [Method] [Options] [Target URL]

    • أهم الخيارات (Flags):

      • -X (كبير): لتحديد فعل HTTP (مثل GET, HEAD, OPTIONS, POST, PUT, DELETE).

      • -i (كبير): لعرض رؤوس الاستجابة فقط (Headers) (يعادل HEAD في بعض الحالات).

      • -v (صغير): لعرض تفاصيل الإرسال والاستقبال (Verbose).

      • -d (صغير): لإرسال بيانات POST.

      • --upload-file: لرفع ملف.

    • تحديد الأفعال المسموح بها للصفحة الرئيسية:

      • لو نفذت الأمر curl -X OPTIONS -v https://target-1، فسيظهر لك الأفعال المسموح بها للصفحة الرئيسية.

        • 🔑 المعلومة الذهبية: استخدام OPTIONS مع curl -v هو أفضل طريقة لمعرفة الأفعال المسموح بها لأي مورد.

      • لو ظهر Allow: GET, HEAD, OPTIONS، فهذا يعني أن هذه الأفعال فقط هي المسموح بها.

    • اختبار أفعال غير مسموح بها (POST, PUT):

      • لو نفذت curl -X POST https://target-1، فسيظهر لك خطأ 405 Method Not Allowed.

      • لو نفذت curl -X PUT https://target-1، فسيظهر لك خطأ 405 Method Not Allowed.

    • تسجيل الدخول باستخدام POST (صفحة login.php):

      • لو نفذت الأمر التالي لتسجيل الدخول إلى صفحة login.php، فسيرسل بيانات POST ويُظهر استجابة تشير إلى إعادة التوجيه 302 Found (دليل على نجاح تسجيل الدخول):

        curl -X POST -d "name=john&password=password" https://target-1/login.php
        • 💡 معلومة ذهبية: رمز الحالة 302 Found بعد محاولة تسجيل الدخول يشير عادةً إلى نجاح المصادقة وإعادة توجيه المستخدم.

    • تحديد الأفعال المسموح بها لمجلد uploads:

      • لو نفذت curl -X OPTIONS -v https://target-1/uploads/ (لا تنسى / في نهاية المجلد)، فسيظهر لك أن هذا المجلد يسمح بـ GET, HEAD, POST, DELETE, TRACE.

        • 🔑 السماح بـ PUT أو DELETE في مجلدات مثل uploads هو ثغرة أمنية خطيرة.

  3. رفع وحذف الملفات باستخدام Curl (استغلال ثغرة uploads):

    • إنشاء ملف نصي (مثلاً hello.txt):

      • لو نفذت echo "Hello Ahmad" > hello.txt، فسيتم إنشاء ملف hello.txt يحتوي على النص المحدد.

    • رفع الملف باستخدام PUT:

      • لو نفذت الأمر curl --upload-file hello.txt https://target-1/uploads/hello.txt، فسيتم رفع الملف إلى مجلد uploads.

        • 💡 معلومة ذهبية: uploads/ هي نقطة حساسة.

      • لو راجعت مجلد uploads في المتصفح (https://target-1/uploads/فسيظهر لك ملف hello.txt، مما يؤكد نجاح الرفع.

    • حذف الملف باستخدام DELETE:

      • لو نفذت curl -X DELETE https://target-1/uploads/hello.txt، فسيتم حذف الملف.

      • لو راجعت مجلد uploads في المتصفح، فسيظهر أنه فارغ، مما يؤكد نجاح الحذف.

  4. تعداد أفعال HTTP باستخدام Burp Suite Repeater:

    • تكوين Burp Suite:

      • لو قمت بتشغيل Burp Suite.

      • لو ضبطت متصفح Firefox لاستخدام Burp Suite كبروكسي (عبر FoxyProxy، الإرسال إلى 127.0.0.1:8080).

      • لو تأكدت أن Intercept is ON في تبويب Proxy بـ Burp Suite، ثم أعدت تحميل الصفحة الرئيسية (https://target-1فسيعترض Burp Suite الطلب.

    • إرسال الطلبات إلى Repeater:

      • لو أرسلت الطلب المعترض (GET) إلى Repeater (عبر النقر بزر الفأرة الأيمن -> Send to Repeater).

      • لو انتقلت إلى تبويب Repeater.

    • تغيير أفعال HTTP في Repeater:

      • لو غيرت فعل GET إلى HEAD في طلب Repeater ثم ضغطت Send، فسيظهر لك رؤوس الاستجابة فقط.

      • لو غيرت فعل HEAD إلى OPTIONS ثم ضغطت Send، فسيظهر لك الأفعال المسموح بها للصفحة الرئيسية (GET, HEAD, OPTIONS).

      • لو حاولت إرسال POST، فسيظهر لك 405 Method Not Allowed.

    • اختبار رفع الملفات (PUT) في Repeater (لم ينجح في اللاب):

      • لو حاولت إرسال طلب PUT لرفع ملف إلى مجلد uploads عبر Repeater، فسيظهر لك خطأ 501 Not Implemented أو 405 Method Not Allowed، مما يشير إلى أن الخادم لا يدعم PUT من هذه الواجهة. (هذا يوضح أن نتائج الأدوات قد تختلف، وأن بعض الثغرات قد تكون موجودة يدوياً ولكن الأدوات قد لا تستطيع استغلالها بسهولة، أو تحتاج لتكوين إضافي).

نقاط التحقق:

  • لو تمكنت من تحديد الأفعال المسموح بها للصفحات والمجلدات المختلفة باستخدام Curl و Burp Suite.

  • لو نجحت في رفع وحذف ملف hello.txt باستخدام Curl، فهذا يؤكد ثغرة الرفع/الحذف.

  • لو أظهر Burp Suite استجابات 405 Method Not Allowed للأفعال غير المسموح بها، فهذا يؤكد فهمك لسلوك الخادم.

Last updated