العودة إلى التحديثات
New releaseSep 14, 2026

WebGoat v2026.3

تطبيق ويب ضعيف بشكل متعمّد مع دروس وتحديات تفاعلية لتعلّم أمن تطبيقات الويب وتقنيات اختبار الاختراق.

مشاركة

ويبغوت: تطبيق ويب غير آمن عمدًا

Build java-jdk OWASP Labs GitHub release Gitter Discussions Conventional Commits

مقدمة

ويبغوت هو تطبيق ويب غير آمن عمدًا تتم صيانته بواسطة OWASP وهو مصمم لتعليم دروس أمن تطبيقات الويب.

هذا البرنامج عبارة عن عرض توضيحي لعيوب تطبيقات الخادم الشائعة. التمارين مخصصة ليستخدمها الأشخاص لتعلم تقنيات أمن التطبيقات واختبار الاختراق.

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

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

WebGoat

تعليمات التثبيت:

لمزيد من التفاصيل راجع دليل المساهمة

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

الفئات