
WebGoat v2026.3
تطبيق ويب ضعيف بشكل متعمّد مع دروس وتحديات تفاعلية لتعلّم أمن تطبيقات الويب وتقنيات اختبار الاختراق.
ويبغوت: تطبيق ويب غير آمن عمدًا
مقدمة
ويبغوت هو تطبيق ويب غير آمن عمدًا تتم صيانته بواسطة OWASP وهو مصمم لتعليم دروس أمن تطبيقات الويب.
هذا البرنامج عبارة عن عرض توضيحي لعيوب تطبيقات الخادم الشائعة. التمارين مخصصة ليستخدمها الأشخاص لتعلم تقنيات أمن التطبيقات واختبار الاختراق.
تحذير 1: أثناء تشغيل هذا البرنامج سيكون جهازك عرضة للهجوم بشكل كبير. يجب عليك قطع الاتصال بالإنترنت أثناء استخدام هذا البرنامج. التكوين الافتراضي لـ WebGoat يربط الاتصال بـ localhost لتقليل التعرض.
تحذير 2: هذا البرنامج مخصص للأغراض التعليمية فقط. إذا حاولت استخدام هذه التقنيات دون إذن، فمن المرجح جدًا أن يتم القبض عليك. إذا تم القبض عليك وأنت تمارس اختراقًا غير مصرح به، فستطردك معظم الشركات. الادعاء بأنك كنت تقوم بأبحاث أمنية لن ينفعك، فهذا أول شيء يدعيه جميع الهاكرز.

تعليمات التثبيت:
لمزيد من التفاصيل راجع دليل المساهمة
1. التشغيل باستخدام Docker
إذا كان لديك بالفعل متصفح وZAP و/أو Burp مثبتة على جهازك، في هذه الحالة يمكنك تشغيل صورة WebGoat مباشرة باستخدام Docker.
يتم نشر كل إصدار أيضًا على DockerHub.
docker run -it -p 127.0.0.1:8080:8080 -p 127.0.0.1:9090:9090 webgoat/webgoat
لبعض الدروس تحتاج إلى تشغيل الحاوية في نفس المنطقة الزمنية. لهذا يمكنك ضبط متغير البيئة TZ. مثال:
docker run -it -p 127.0.0.1:8080:8080 -p 127.0.0.1:9090:9090 -e TZ=America/Boise webgoat/webgoat
إذا كنت تريد استخدام OWASP ZAP أو بروكسي آخر، لا يمكنك استخدام 127.0.0.1 أو localhost بعد الآن. ولكن يمكنك استخدام إدخالات مضيف مخصصة. على سبيل المثال:
127.0.0.1 www.webgoat.local www.webwolf.local
ثم يمكنك تشغيل الحاوية باستخدام:
docker run -it -p 127.0.0.1:8080:8080 -p 127.0.0.1:9090:9090 -e WEBGOAT_HOST=www.webgoat.local -e WEBWOLF_HOST=www.webwolf.local -e TZ=America/Boise webgoat/webgoat
ثم قم بزيارة http://www.webgoat.local:8080/WebGoat/ و http://www.webwolf.local:9090/WebWolf/
2. التشغيل باستخدام Docker مع سطح مكتب Linux كامل
بدلاً من تثبيت الأدوات محليًا، لدينا صورة Docker كاملة تعتمد على تشغيل سطح مكتب في متصفحك. بهذه الطريقة عليك فقط تشغيل صورة Docker مما سيمنحك أفضل تجربة مستخدم.
docker run -p 127.0.0.1:3000:3000 webgoat/webgoat-desktop
3. تشغيل مستقل
حمّل أحدث إصدار من WebGoat من https://github.com/WebGoat/WebGoat/releases
export TZ=Europe/Amsterdam # or your timezone
java -Dfile.encoding=UTF-8 -jar webgoat-2023.8.jar
انقر على الرابط في السجل لبدء WebGoat.
3.1 التشغيل على منفذ مختلف
إذا أردت لأي سبب تشغيل WebGoat على منفذ مختلف، يمكنك ذلك بإضافة المعامل التالي:
java -jar webgoat-2023.8.jar --webgoat.port=8001 --webwolf.port=8002
للحصول على نظرة عامة كاملة على جميع المعاملات التي يمكنك استخدامها، يرجى مراجعة [ملف خصائص WebGoat](webgoat-container/src/main/resources/application-{webgoat, webwolf}.properties).
4. التشغيل من المصادر
المتطلبات الأساسية:
- Java 25
- محرر التطوير المفضل لديك
- Git، أو دعم Git في محرر التطوير لديك
افتح نافذة/صدفة أوامر:
git clone [email protected]:WebGoat/WebGoat.git
الآن لنبدأ بتجميع المشروع.
cd WebGoat
git checkout <<branch_name>>
# On Linux/Mac:
./mvnw clean install
# On Windows:
./mvnw.cmd clean install
If you have ran WebGoat before, you should first run mvn clean -Pcleanall to clean up files from your temp and home directories which could fail the tests due to changes in lessons!
# Using docker or podman, you can than build the container locally
docker build -f Dockerfile . -t webgoat/webgoat
الآن نحن جاهزون لتشغيل المشروع. يستخدم WebGoat إطار Spring Boot.
# On Linux/Mac:
./mvnw spring-boot:run
# On Windows:
./mvnw.cmd spring-boot:run
... يجب أن يكون WebGoat يعمل على http://localhost:8080/WebGoat/ بعد لحظات.
ملاحظة: سيعيدك الرابط أعلاه إلى صفحة تسجيل الدخول إذا لم تكن مسجلًا. سجّل الدخول/أنشئ حسابًا للمتابعة.
لتغيير عنوان IP أضف المتغير التالي إلى ملف WebGoat/webgoat-container/src/main/resources/application.properties:
server.address=x.x.x.x
4. التشغيل بقائمة مخصصة
للمتخصصين فقط. هناك طريقة لإعداد WebGoat بقائمة مخصصة. يمكنك استبعاد بعض فئات القائمة أو دروس فردية عن طريق ضبط متغيرات بيئة معينة.
على سبيل المثال، عند التشغيل كملف jar على Linux/macOS سيكون الشكل كالتالي:
export TZ=Europe/Amsterdam # or your timezone
export EXCLUDE_CATEGORIES="CLIENT_SIDE,GENERAL,CHALLENGE"
export EXCLUDE_LESSONS="SqlInjectionAdvanced,SqlInjectionMitigations"
java -jar target/webgoat-2023.8-SNAPSHOT.jar
أو عند التشغيل عبر Docker سيكون (بمجرد دفع هذا الإصدار إلى Docker Hub) على النحو التالي:
docker run -d -p 127.0.0.1:8080:8080 -p 127.0.0.1:9090:9090 -e EXCLUDE_CATEGORIES="CLIENT_SIDE,GENERAL,CHALLENGE" -e EXCLUDE_LESSONS="SqlInjectionAdvanced,SqlInjectionMitigations" webgoat/webgoat