العودة إلى الأكاديمية

CLR-6 · مختبر تطبيقي · سهل ·حوالي 40 دقيقة

ابنِ ميدان تدريبك الخاص

انصب على جهازك تطبيق ويب هشّاً عمداً باستعمال Docker، وشغّل فحص أساس آلياً بأداة OWASP ZAP، وتعلّم قراءة التقرير. وهما المهارتان اليوميتان وراء التقييم والكشف.

المهمة

عند CLR-6، أضمن طريقة لمواصلة التقدّم هي التدرّب على هدف تتحكّم فيه. يبني هذا المختبر واحداً: تطبيق ويب هشّ عمداً يعمل على جهازك وحده، وأداة فحص آلية لسبره. لا خادم مشترك، ولا خطر على أحد غيرك.

قواعد الاشتباك. افعل هذا فقط على حاسوب تملكه. لا توجّه Juice Shop ولا أداة الفحص أبداً نحو أي نظام لا تملكه ولا تملك إذناً صريحاً باختباره. الإعداد يبقي التطبيق مربوطاً بـ localhost.

تحتاج: Docker (‏Docker Desktop على Windows/macOS، أو Docker Engine على Linux).

1. احصل على الملفات

docker-compose.yml · README.md

ملف compose قصير:

services:
  juice-shop:
    image: bkimminich/juice-shop:v20.3.0
    container_name: zenaro-juice-shop
    ports:
      - "127.0.0.1:3000:3000"
    restart: unless-stopped

2. شغّل التطبيق

في المجلد الذي يحتوي ملف compose:

docker compose up

انتظر ظهور Server listening on port 3000، ثم افتحه في متصفحك. مهمتك الأولى داخل Juice Shop هي العثور على Score Board المخفية، التي تسرد تحديات التدريب.

3. افحصه بأداة OWASP ZAP

شغّل فحص baseline الجاهز (سلبي وسريع) من صورة ZAP:

docker run --rm --network host ghcr.io/zaproxy/zaproxy:stable \
  zap-baseline.py -t http://localhost:3000

على macOS/Windows، استبدل الهدف بـ http://host.docker.internal:3000. ينتهي الفحص بسطر مثل FAIL: 0 WARN: 4 IGNORE: 0 PASS: 22، وكل نتيجة فوقه تذكر قاعدة والعناوين المتأثرة بها.

تُجاب الأسئلة الأربعة أدناه بتنفيذ الخطوات الثلاث. الملف README.md يعطي كل التفاصيل وأمر التنظيف.

الأسئلة

  1. بعد docker compose up، على أي منفذ TCP يستمع Juice Shop (والذي تفتحه في المتصفح)؟25 نقطة

    1. توفّر OWASP ZAP عدة فحوص جاهزة. ما اسم السكربت الذي يشغّل فحص *baseline* (السريع السلبي) من صورة ZAP على Docker؟25 نقطة

      1. لدى Juice Shop صفحة مخفية تتابع تحديات التدريب. ما مسارها (الجزء من العنوان بعد المضيف)؟25 نقطة

        1. ينتهي فحص baseline في ZAP بملخّص من أربعة عدّادات (FAIL وWARN وIGNORE وPASS). أيّها يشير إلى قاعدة تجاوزت العتبة المضبوطة ويجب مراجعتها أولاً؟25 نقطة