تثبيت WebGoat على CentOS خطوة بخطوة

مقدمة

الكثير منا يحتاج بيئة وهمية لتطبيق ما يتعلمه في استغلال ثغرات تطبيقات الويب. كتابة أكواد مصابة والتطبيق عليها هو إهدار للمجهود والوقت كما أنه من الخطأ التعلم على مواقع حقيقية تخص أشخاص آخرين ولهذا نبحث عن تطبيقات مصابة تم عملها خصيصا للتعلم وتختلف هذه التطبيقات في لغة برمجتها وقواعد بياناتها وأيضا الثغرات الموجودة عليها ومدى احترافيتها. مشروع WebGoat هو من تطويل منظمة OWASP وتم عمله بالجافا J2EE ليتناسب مع التدريبات التي تعطيها في دوراتها الاحترافية وهو مشروع مجاني ومفتوح المصدر ويعمل على عدة منصات وهو ليس المنصة الوحيدة الموجودة في هذا المجال.

يحتوي المشروع على أنواع مختلفة من ثغرات الويب منها

  • Cross-site Scripting (XSS)
  • Access Control
  • Thread Safety
  • Hidden Form Field Manipulation
  • Parameter Manipulation
  • Weak Session Cookies
  • Blind SQL Injection
  • Numeric SQL Injection
  • String SQL Injection
  • Web Services
  • Fail Open Authentication
  • Dangers of HTML Comments

والأن جاء وقت التثبيت..

التـثـبـيـت

1. تثبيت الجافا على النظام

yum -y install java-*-openjdk
2. تحميل المشروع

حمل المشروع من الروابط الرئيسية: من هنا
3. فك الضغط والدخول إلى مجلد المشروع

unzip WebGoat-5.4-OWASP_Standard_Win32.zip
cd WebGoat-5.4

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

3.1. تعديل ملف تشغيل المشروع (Linux=webgoat.sh , Windows,webgoat.bat)

معلومة:

مسار الجافا عندي هو (/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0) تستطيع البحث عن مسار الجافا الخاص بك عن طريق
find / -name java

إصدار الجافا عندي هو (1.6.0_22)  تسطيع معرفة إصدار الجافا لديك عن طريق

java -version
الأن افتح الملف webgoat.sh

vim webgoat.sh

ابحث عن السطر

export CATALINA_HOME PATH

وحوله إلى نفس مسار الجافا الخاص بك

export JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0

ابحث عن السطر

$JAVA_HOME/bin/java -version 2>&1 | grep ‘version \”1.5’ >/dev/null

وحوله إلى نفس إصدار الجافا الخاص بك

$JAVA_HOME/bin/java -version 2>&1 | grep ‘version \”1.6.0_22’ >/dev/null

 

4. شغل خادم المشروع
./webgoat.sh start80
سيعمل على منفذ 80, أو
./webgoat.sh start8080
كي يعمل على منفذ 8080
حتى هنا نكون قد انتهينا من التثبيت بشكل رسمي, لكن ستواجهنا مشكلة أن WebGoat تم إعداده لكي يتم الوصول إليه من نفس الجهاز المُثبت عليه احتياطا لأنه نظام مليئ بالثغرات وخوفا من الوصول إليه من أحد في نفس الشبكة واختراق الجهاز.
في حالتنا نريد الوصول إليه من الشبكة والأن سنعرف كيفيه إعداده لهذا.
 
5. تعديل ملف إعدادات الـ Tomcat 
cd tomcat/conf
ملاحظة:
إذا كنت تريد تشغيل المشروع على منفذ 80, عدل الملف (server_80.xml)
إذا كنت تريد تشغيل المشروع على منفذ 80, عدل الملف (server_8080.xml)

اذهب إلى السطر

Connector address=”127.0.0.1” port=”80″ maxHttpHeaderSize=”8192″

واجعله

Connector address=”0.0.0.0” port=”80″ maxHttpHeaderSize=”8192″

 

5.1. أعد التشغيل أو ابحث عن الـ Process الخاصة بالجافا واغلقها

5.2.شغّل خادم المشروع
./webgoat.sh start80
سيعمل على منفذ 80, أو
./webgoat.sh start8080

معلومة:
تستطيع جعل التطبيق يعمل بشكل افتراضي (مسار التطبيق عندي تحت الجذر مباشرة)
echo "cd /WebGoat-5.4 && ./webgoat.sh start80 &" >> /etc/rc.local

5.3.الدخول إلى المشروع من المتصفح
http://x.x.x.x/WebGoat/attack

عند دخولك على الموقع لأول مرة سيطلب منك اسم مستخدم وكلمة مرور ,, استخدم التالي
Username = guest, password = guest

سؤال: نعلم أن هناك مشاريع أخرى مثل Webgoat وعلى منصات مختلفة ولغات متعددة, هل تعتقد أن في تلك المشاريع من هو أفضل منه؟ ولماذا؟

نبذة عن الكاتب

المهندس صبري صالح. مهندس حماية شبكات و أنظمة و فحصها معالجة و تحليل الأحداث الأمنية و المسؤول عن تطبيق معايير الـ ISO 27001 , يعمل في بيئات متعددة المنصات. حاصل على عدة شهادات تقنية.

التعليقات:

أضف تعليقاً | عدد التعليقات: (4)

  1. ثعلوب قال:

    شكرا أخ صبري

    نترقب جديدكم

  2. عبدالله قال:

    هناك أيضا سكربت php
    Damn Vulnerable Web Application (DVWA)
    http://www.dvwa.co.uk/
    لكن لا أدري ما الفرق بينهم

  3. محمد العسراوي قال:

    جهد طيب, تشكرون عليه.
    يوجد framework تُسمى Samurai تضم مجموعة من الأدوات لتنفيذ اختبار قابلية اختراق تطبيقات الوب, كما أنها تضم WebGoat مثبت وجاهز للاستخدام مباشرة.
    http://samurai.inguardians.com/

  4. هناك أيضا أداء تقوم بفحص السكربتات ومعرفة الدوال

    RIPS – PHP static code analyzer

    صراحة سكربت مفيـــد جدا وشكرا

أكتب تعليق