راه‌اندازی آزمایشگاه Web Application Pentest با استفاده از Docker

در حوزه امنیت سایبری، Penetration Testing و Vulnerability Assessment از گام‌های کلیدی برای شناسایی و کاهش تهدیدات امنیتی بالقوه محسوب می‌شوند. با توجه به افزایش چشمگیر تعداد برنامه‌های تحت وب، نیاز به محیط‌های آزمایشی امن و پایدار بیش از هر زمان دیگری اهمیت پیدا کرده است.

در این مقاله، به بررسی مفهوم Vulnerable Web Applications، اهمیت آن‌ها در فرآیند Penetration Testing، و نحوه راه‌اندازی این محیط‌ها با استفاده از Docker خواهیم پرداخت.

فهرست مطالب

  1. مقدمه‌ای بر Vulnerable Web Applications
  2. پیش‌نیازها
  3. راه‌اندازی Docker بر روی سیستم
  4. راه‌اندازی Vulnerable Web Applications با استفاده از Docker
  5. Damn Vulnerable Web Application (DVWA)
  6. OWASP Juice Shop
  7. OWASP VulnerableApp
  8. OWASP WebGoat
  9. SQLi-Labs
  10. bWAPP
  11. OWASP Mutillidae II
  12. Damn Vulnerable GraphQL Application
  13. Damn Vulnerable RESTurant API
  14. Pixi
  15. PyGoat
  16. Server-Side Request Forgery
  17. VulnBank
  18. VulnLab
  19. OWASP WrongSecrets
  20. Yrprey
  21. Zero Health
  22. نتیجه‌گیری

مقدمه‌ای بر Vulnerable Web Applications

Vulnerable Web Applications برنامه‌های تحت وبی هستند که به‌صورت عمدی با ضعف‌ها و آسیب‌پذیری‌های امنیتی طراحی شده‌اند تا Penetration Testers و پژوهشگران امنیت بتوانند مهارت‌های خود را در یک محیط ایمن و کنترل‌شده آزمایش و تقویت کنند.

آکادمی لیان

این دسته از برنامه‌ها نقش مهمی در شناسایی و کاهش تهدیدات امنیتی بالقوه ایفا کرده و به‌طور گسترده در صنعت امنیت سایبری مورد استفاده قرار می‌گیرند.

پیش‌نیازها

  • آشنایی پایه با Docker و دستورات آن
  • آشنایی با Linux و مفاهیم برنامه‌های تحت وب

راه‌اندازی Docker بر روی سیستم

Docker یک پلتفرم است که امکان اجرای برنامه‌ها را درون Container‌های سبک و ایزوله فراهم می‌کند — رویکردی ایده‌آل برای استقرار برنامه‌های آسیب‌پذیر بدون ایجاد تغییر یا تاثیر بر سیستم اصلی.

برای نصب Docker و Docker Compose در سیستم‌های مبتنی بر Debian/Ubuntu، دستورات زیر را اجرا کنید:

apt install docker.io

apt install docker-compose

راه‌اندازی Vulnerable Web Applications با استفاده از Docker

در ادامه، دستورالعمل‌های لازم برای راه‌اندازی انواع Vulnerable Web Applications با بهره‌گیری از Docker ارائه شده است:

DVWA (Damn Vulnerable Web Application)

DVWA یک برنامه تحت وب مبتنی بر PHP/MySQL است که یک وب‌سایت آسیب‌پذیر را شبیه‌سازی می‌کند و به کاربران امکان می‌دهد تا در یک محیط امن، بهره‌برداری از آسیب‌پذیری‌های رایج وب نظیر SQL Injection و Cross-Site Scripting (XSS) را تمرین کنند.

برای پیکربندی DVWA در Docker، می‌توانید از دستورات زیر استفاده کنید:

docker pull sagikazarmark/dvwa

docker run --rm -it -p 8080:80 sagikazarmark/dvwa

مراحل پیکربندی و ورود به DVWA

دسترسی به صفحه ورود

  • مرورگر خود را باز کرده و آدرس زیر را وارد کنید:
    http://localhost:8080/login.php
  • اطلاعات پیش‌فرض ورود:
    • نام کاربری admin
    • رمز عبور password
  • بر روی دکمه Login کلیک کنید.

ایجاد/بازنشانی پایگاه داده

پس از ورود موفقیت‌آمیز، صفحه‌ای با عنوان Database configuration نمایش داده خواهد شد.
برای انجام عملیات زیر، دکمه Create / Reset Database را کلیک کنید:

  • راه‌اندازی اولیه پایگاه داده DVWA (در صورت پیکربندی اولیه)
  • پاک‌سازی داده‌های موجود و بازنشانی به حالت پیش‌فرض (در صورت نیاز به بازنشانی)

نکته: مطمئن شوید که اطلاعات کاربری MySQL در فایل /var/www/html/config/config.inc.php به درستی تنظیم شده باشد.

بارگذاری خودکار صفحه اصلی

پس از پیکربندی پایگاه داده، به‌طور خودکار به صفحه خوش‌آمدگویی DVWA هدایت خواهید شد.
در این صفحه قادر خواهید بود:

  • سطح امنیتی را انتخاب کنید (Low/Medium/High/Impossible)
  • به ماژول‌های مربوط به آسیب‌پذیری‌ها مانند SQL Injection و XSS دسترسی داشته باشید.

Juice Shop

OWASP Juice Shop یک برنامه وب متن‌باز است که به‌صورت عمدی ناامن طراحی شده و بیش از ۳۰ آسیب‌پذیری و چالش مختلف را برای کاربران فراهم می‌کند تا آن‌ها را شناسایی و بهره‌برداری کنند.

برای پیکربندی Juice Shop در Docker، می‌توانید از دستورات زیر استفاده نمایید:

docker pull bkimminich/juice-shop

docker run --rm -p 3000:3000 bkimminich/juice-shop

پس از راه‌اندازی کانتینر Juice Shop، می‌توانید از طریق مرورگر خود به آدرس http://localhost:3000 مراجعه کنید. از این نقطه، می‌توانید فعالیت‌های عملی تست نفوذ خود را آغاز نمایید.

OWASP VulnApp

OWASP VulnApp یک برنامه تحت وب است که به‌صورت عمدی در برابر انواع مختلف حملات آسیب‌پذیر طراحی شده است و محیطی امن و کنترل‌شده برای کاربران فراهم می‌کند تا درباره امنیت وب آموزش ببینند و مهارت بهره‌برداری از آسیب‌پذیری‌ها را تمرین کنند. این برنامه شامل مجموعه‌ای از آسیب‌پذیری‌ها مانند SQL Injection، XSS و File Inclusion می‌باشد.

برای پیکربندی OWASP VulnApp در Docker، می‌توانید از دستورات زیر استفاده نمایید:

git clone https://github.com/SasanLabs/VulnerableApp.git
cd VulnerableApp

docker-compose up

پس از راه‌اندازی کانتینر OWASP VulnApp، می‌توانید از طریق مرورگر خود به آدرس http://localhost:80 مراجعه کنید. از این نقطه، می‌توانید فعالیت‌های عملی تست نفوذ خود را آغاز نمایید.

WebGoat

WebGoat یک برنامه تحت وب آموزشی است که با ارائه مجموعه‌ای از درس‌ها و تمرین‌ها، مفاهیم امنیت برنامه‌های تحت وب مانند احراز هویت (Authentication)، مجوزدهی (Authorization) و اعتبارسنجی ورودی (Input Validation) را آموزش می‌دهد.

برای پیکربندی WebGoat در Docker، می‌توانید از دستورات زیر استفاده نمایید:

docker pull webgoat/webgoat
docker run -p 127.0.0.1:8080:8080 -p 127.0.0.1:9090:9090 -e TZ=Europe/Amsterdam webgoat/webgoat

پس از راه‌اندازی کانتینر WebGoat، می‌توانید از طریق مرورگر خود به آدرس http://localhost:8080/WebGoat/login مراجعه کنید. از این نقطه می‌توانید فعالیت‌های عملی تست نفوذ خود را آغاز نمایید.

SQLi-Labs (Dhakkan)

SQLi-Labs یک برنامه تحت وب است که به‌صورت تخصصی برای آموزش حملات SQL Injection طراحی شده و مجموعه‌ای از چالش‌ها و تمرین‌ها را برای کاربران فراهم می‌کند تا مهارت بهره‌برداری از آسیب‌پذیری‌های SQL Injection را تمرین نمایند.

برای پیکربندی SQLi-Labs در Docker، می‌توانید از دستورات زیر استفاده کنید:

docker pull acgpiano/sqli-labs
docker run -d -p 80:80 acgpiano/sqli-labs:latest

پس از راه‌اندازی کانتینر SQLi-Labs، می‌توانید از طریق مرورگر خود به آدرس http://localhost مراجعه کنید. از این نقطه می‌توانید فعالیت‌های عملی تست نفوذ خود را آغاز نمایید.

پیکربندی SQLi-LABS و چالش‌ها

پیکربندی پایگاه داده

برای انجام تنظیمات و بازنشانی پایگاه داده، گزینه‌ی “configuration/reset Database for labs” را انتخاب کنید تا:

  • در صورت وجود، پایگاه داده قدیمی (با هدف امنیتی) پاک‌سازی شود.

خروجی تأیید می‌کند که ایجاد پایگاه داده‌ها و جداول با موفقیت انجام شده است (برای مثال: [*]……Creating New Table ‘USERS’ successfully)

دسته‌بندی چالش‌ها

  • صفحه ۱ (Basic): شامل انواع حملات SQL Injection مبتنی بر خطا (Error-based)، کور (Blind) و مبتنی بر زمان (Time-based) (مثلاً: GET – Error based – Single quotes).
  • صفحه ۲ (Advanced): حملات پیچیده‌تر مانند تزریق‌های دوگانه (Double injections) و استخراج اطلاعات با outfile dumping.
  • صفحه ۳ (Stacked): تزریق‌های چند کوئری (Multi-query injections) (مثلاً: ST – Double Injection).
  • صفحه ۴ (Challenges): مجموعه‌ای از چالش‌ها با سطوح دشواری متنوع (از Less-1 تا Less-22).

bWAPP

bWAPP یک برنامه تحت وب است که به‌صورت عمدی در برابر انواع مختلف حملات آسیب‌پذیر طراحی شده و محیطی امن و کنترل‌شده را برای آموزش امنیت وب و تمرین بهره‌برداری از آسیب‌پذیری‌ها فراهم می‌کند. این برنامه مجموعه‌ای از آسیب‌پذیری‌ها از جمله SQL Injection، XSS و File Inclusion را پوشش می‌دهد.

برای پیکربندی bWAPP در Docker، می‌توانید از دستورات زیر استفاده کنید:

docker pull raesene/bwapp
docker run -d -p 80:80 raesene/bwapp

پس از راه‌اندازی کانتینر bWAPP، می‌توانید از طریق مرورگر خود به آدرس http://localhost/install.php مراجعه کنید.برای نصب bWAPP، روی گزینه “here” کلیک کنید.

پس از تکمیل فرآیند نصب، صفحه اصلی bWAPP به‌صورت خودکار بارگذاری خواهد شد.

Mutillidae

Mutillidae یک برنامه تحت وب است که به‌صورت عمدی در برابر انواع مختلف حملات آسیب‌پذیر طراحی شده و محیطی امن و کنترل‌شده برای آموزش امنیت وب و تمرین بهره‌برداری از آسیب‌پذیری‌ها فراهم می‌کند. این برنامه مجموعه‌ای از آسیب‌پذیری‌ها از جمله SQL Injection، XSS و File Inclusion را پوشش داده و به دلیل سناریوهای واقع‌گرایانه و چالش‌برانگیز خود شناخته می‌شود.

برای پیکربندی Mutillidae در Docker، می‌توانید از دستورات زیر استفاده کنید:

git clone https://github.com/webpwnized/mutillidae-docker.git
cd mutillidae-docker
docker compose -f.build/docker-compose.yml up --build –detach

پس از راه‌اندازی کانتینر Mutillidae، می‌توانید از طریق مرورگر خود به آدرس http://localhost:80 مراجعه کنید. از این نقطه، می‌توانید فعالیت‌های عملی تست نفوذ خود را آغاز نمایید.

Damn Vulnerable GraphQL Application

Damn Vulnerable GraphQL Application یک برنامه تحت وب مبتنی بر GraphQL است که به‌صورت عمدی در برابر انواع مختلف حملات آسیب‌پذیر طراحی شده و محیطی امن و کنترل‌شده برای آموزش امنیت GraphQL و تمرین بهره‌برداری از آسیب‌پذیری‌ها فراهم می‌کند.

برای پیکربندی Damn Vulnerable GraphQL Application در Docker، می‌توانید از دستورات زیر استفاده نمایید:

docker pull dolevf/dvga
docker run -t -p 5013:5013 -e WEB_HOST=0.0.0.0 dolevf/dvga

پس از راه‌اندازی کانتینر Damn Vulnerable GraphQL Application، می‌توانید از طریق مرورگر خود به آدرس http://localhost:5013 مراجعه کنید. از این نقطه، می‌توانید فعالیت‌های عملی تست نفوذ خود را آغاز نمایید.

Damn Vulnerable RESTurant API

Damn Vulnerable RESTurant API یک RESTful API است که به‌صورت عمدی در برابر انواع مختلف حملات آسیب‌پذیر طراحی شده و محیطی امن و کنترل‌شده برای آموزش امنیت API و تمرین بهره‌برداری از آسیب‌پذیری‌ها فراهم می‌کند. این برنامه مجموعه‌ای از آسیب‌پذیری‌های خاص API از جمله ضعف‌های Authentication و Authorization را پوشش می‌دهد.

برای پیکربندی Damn Vulnerable RESTurant API در Docker، می‌توانید از دستورات زیر استفاده کنید:

git clone https://github.com/theowni/Damn-Vulnerable-RESTaurant-API-Game.git
cd Damn-Vulnerable-RESTaurant-API-Game
./start_app.sh

پس از راه‌اندازی کانتینر Damn Vulnerable RESTurant API، می‌توانید از طریق مرورگر خود به آدرس http://localhost:8091/docs مراجعه کنید. از این نقطه، می‌توانید فعالیت‌های عملی تست نفوذ خود را آغاز نمایید.

Pixi

Pixi یک برنامه تحت وب است که به‌صورت عمدی در برابر انواع مختلف حملات آسیب‌پذیر طراحی شده و محیطی امن و کنترل‌شده را برای آموزش امنیت وب و تمرین بهره‌برداری از آسیب‌پذیری‌ها فراهم می‌کند.

برای پیکربندی Pixi در Docker، می‌توانید از دستورات زیر استفاده نمایید:

git clone https://github.com/DevSlop/Pixi.git
cd Pixi
docker-compose up

پس از راه‌اندازی کانتینر Pixi، می‌توانید از طریق مرورگر خود به آدرس http://localhost:8000/login مراجعه کنید. از این نقطه، می‌توانید فعالیت‌های عملی تست نفوذ خود را آغاز نمایید.

PyGoat
PyGoat یک Web Application است که با هدف آموزش Web Application Security طراحی شده و شامل مجموعه‌ای از درس‌ها و تمرین‌ها در حوزه‌هایی مانند Authentication، Authorisation و Input Validation می‌باشد. این پلتفرم یک محیط Hands-on برای یادگیری امنیت وب و تمرین در شناسایی و بهره‌برداری از Vulnerabilities فراهم می‌کند، با تمرکز ویژه بر Python-based Web Applications.

برای Configure کردن PyGoat بر روی Docker، می‌توانید از دستورات زیر استفاده کنید:

docker pull pygoat/pygoat:latest
docker run --rm -p 8000:8000 pygoat/pygoat:latest

پس از Start کردن PyGoat Container، می‌توانید با مراجعه به آدرس http://localhost:8000/login از طریق Web Browser خود به آن دسترسی پیدا کنید. از این نقطه، می‌توانید Hands-on Testing Journey خود را آغاز نمایید.

SSRF
SSRF یک Web Application است که با هدف آموزش حملات Server-Side Request Forgery (SSRF) طراحی شده و مجموعه‌ای از Challenges و Exercises را برای کاربران فراهم می‌کند تا بتوانند در شناسایی و بهره‌برداری از SSRF Vulnerabilities تمرین کنند.

برای Configure کردن SSRF بر روی Docker، می‌توانید از دستورات زیر استفاده نمایید:

docker pull youyouorz/ssrf-vulnerable-lab
docker run -d --name ssrf-lab -p 9000:80 youyouorz/ssrf-vulnerable-lab

پس از Start کردن SSRF Container، می‌توانید با مراجعه به آدرس http://localhost:9000 از طریق Web Browser خود به آن دسترسی پیدا کنید. از این نقطه، می‌توانید Hands-on Testing Journey خود را آغاز نمایید.

VulnBank
VulnBank یک Web Application است که با هدف شبیه‌سازی یک Vulnerable Online Banking System طراحی شده و به کاربران امکان می‌دهد تا در بهره‌برداری از Common Web Vulnerabilities مانند SQL Injection و Cross-Site Scripting (XSS) تمرین کنند.

برای Configure کردن VulnBank بر روی Docker، می‌توانید از دستورات زیر استفاده نمایید:

git clone https://github.com/Commando-X/vuln-bank.git
cd vuln-bank
docker-compose up

پس از Start کردن VulnBank Container، می‌توانید با مراجعه به آدرس http://172.24.0.3:5000 از طریق Web Browser خود به آن دسترسی پیدا کنید. از این نقطه، می‌توانید Hands-on Testing Journey خود را آغاز نمایید.

VulnLab
VulnLab یک Web Application است که با هدف فراهم کردن یک محیط Hands-on برای یادگیری Web Security و تمرین در بهره‌برداری از Vulnerabilities طراحی شده است. این پلتفرم مجموعه‌ای از آسیب‌پذیری‌ها از جمله SQL Injection، XSS و File Inclusion را پوشش می‌دهد و به دلیل Realistic و Challenging Scenarios خود شناخته شده است.

برای Configure کردن VulnLab بر روی Docker، می‌توانید از دستورات زیر استفاده کنید:

docker pull yavuzlar/vulnlab
docker run -d -p 1337:80 yavuzlar/vulnlab

پس از Start کردن VulnLab Container، می‌توانید با مراجعه به آدرس http://localhost:1337 از طریق Web Browser خود به آن دسترسی پیدا کنید. از این نقطه، می‌توانید Hands-on Testing Journey خود را آغاز نمایید.

WrongSecrets
WrongSecrets یک Web Application است که با هدف آموزش مفاهیم Secrets Management و روش‌های صحیح ذخیره‌سازی و مدیریت Sensitive Data طراحی شده است.

برای Configure کردن WrongSecrets بر روی Docker، می‌توانید از دستورات زیر استفاده کنید:

docker run -p 8080:8080 jeroenwillemsen/wrongsecrets:latest-no-vault

پس از Start کردن WrongSecrets Container، می‌توانید با مراجعه به آدرس http://localhost:8080 از طریق Web Browser خود به آن دسترسی پیدا کنید. از این نقطه، می‌توانید Hands-on Testing Journey خود را آغاز نمایید.

Yrprey
Yrprey یک Web Application است که با هدف شبیه‌سازی یک وب‌اپلیکیشن آسیب‌پذیر طراحی شده است. این محیط به کاربران اجازه می‌دهد تا در یک فضای کنترل‌شده، بهره‌برداری (Exploitation) از Web Vulnerabilities رایج مانند SQL Injection و Cross-Site Scripting (XSS) را تمرین کنند.

برای Configure کردن Yrprey در محیط Docker، می‌توانید از دستورات زیر استفاده کنید:

git clone https://github.com/yrprey/yrprey-application.git
cd yrprey-application
docker-compose -f.docker/dev/app.yaml -p yrprey up -d

پس از Start کردن Yrprey Container، می‌توانید از طریق مرورگر وب خود و با مراجعه به آدرس http://localhost:3005 به آن دسترسی پیدا کنید. از این نقطه، می‌توانید فرآیند Hands-on Testing خود را آغاز نمایید.

Zero Health
Zero Health یک Web Application است که با هدف شبیه‌سازی یک سیستم بهداشتی و درمانی آسیب‌پذیر طراحی شده است. این محیط به کاربران اجازه می‌دهد تا در یک بستر کنترل‌شده، بهره‌برداری (Exploitation) از Web Vulnerabilities رایج مانند SQL Injection و Cross-Site Scripting (XSS) را تمرین کنند.

برای Configure کردن Zero Health در محیط Docker، می‌توانید از دستورات زیر استفاده کنید:

git clone https://github.com/aligorithm/zero-health.git
cd zero-health
docker-compose up

پس از Start کردن Zero Health Container، می‌توانید از طریق مرورگر وب خود و با مراجعه به آدرس http://localhost:3000 به آن دسترسی پیدا کنید. از این مرحله، می‌توانید فرآیند Hands-on Testing خود را آغاز نمایید.

نتیجه گیری
وب‌اپلیکیشن‌های آسیب‌پذیر، فرصت‌های Hands-on ارزشمندی را برای هر دو تیم Red Team و Blue Team فراهم می‌کنند تا مهارت‌های خود را ارتقاء دهند. با Mapping این برنامه‌ها به چارچوب MITRE ATT&CK، متخصصان امنیت می‌توانند Real-world Attack Chains را شبیه‌سازی کرده و وضعیت دفاعی (Defense Posture) خود را بهبود بخشند.
Docker فرآیند Deploy کردن این Labs را آسان و قابل تکرار می‌کند. چه در حال تست XSS، SQLi یا API Abuse باشید، همواره باید دستورالعمل‌های اخلاقی (Ethical Guidelines) را رعایت کرده و از این محیط‌ها صرفاً در بسترهای ایزوله (Isolated Environments) استفاده کنید.

 

 

 

 

 

 

آکادمی لیان

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا