اگر تا امروز فقط با Kali Linux و Metasploitable 2 کار کردهاید، وقت آن رسیده یک قدم جلوتر برویم و وارد دنیای Web Application Security شویم.
در این آموزش یک آزمایشگاه کاملاً قانونی میسازیم که شامل:
Kali Linux
│
├── Nmap
├── Burp Suite
└── Browser
│
▼
DVWA
Damn Vulnerable Web Application
DVWA یک وباپلیکیشن عمداً آسیبپذیر است که برای یادگیری و تمرین امنیت برنامههای وب طراحی شده است.
⚠️ تمام مراحل این آموزش فقط روی آزمایشگاه شخصی انجام میشود. DVWA را روی اینترنت عمومی قرار ندهید.
🎯 در این آموزش چه چیزی یاد میگیریم؟
در پایان آموزش شما میتوانید:
- یک آزمایشگاه Web Security بسازید.
- Kali Linux را به محیط آزمایشگاه متصل کنید.
- DVWA را اجرا کنید.
- سرویس وب را با Nmap شناسایی کنید.
- ترافیک HTTP را با Burp Suite مشاهده کنید.
- ساختار یک Web Application آسیبپذیر را بررسی کنید.
- مفهوم آسیبپذیریهایی مانند XSS و SQL Injection را در محیط آموزشی درک کنید.
- نتایج تست را مستندسازی کنید.
بخش اول: آزمایشگاه موردنیاز
پیشنهاد میکنم ساختار آزمایشگاه اینگونه باشد:
┌────────────────────────┐
│ Kali Linux │
│ │
│ Nmap | Burp | Browser │
│ │
│ 192.168.56.10 │
└───────────┬────────────┘
│
Host-Only Network
│
┌───────────▼────────────┐
│ DVWA │
│ Vulnerable Web App │
│ │
│ 192.168.56.20 │
└────────────────────────┘
هر دو سیستم باید روی یک شبکه آزمایشگاهی جداگانه باشند.
بخش دوم: DVWA چیست؟
Damn Vulnerable Web Application یا DVWA یک برنامه وب عمداً ناامن برای آموزش امنیت وب است.
هدف DVWA این نیست که یک وبسایت واقعی باشد؛ بلکه طراحی شده تا دانشجو بتواند در یک محیط کنترلشده، رفتار آسیبپذیریهای مختلف را مشاهده کند.
در DVWA میتوان موضوعاتی مانند موارد زیر را مطالعه کرد:
- Brute Force
- Command Injection
- CSRF
- File Inclusion
- File Upload
- SQL Injection
- XSS
- Authentication weaknesses
البته هدف ما در این آموزش، یادگیری روش تحلیل است، نه حمله به سایتهای واقعی.
بخش سوم: آمادهسازی Kali Linux
ابتدا Kali را روشن کنید.
ترمینال:
sudo apt update
سپس:
sudo apt full-upgrade -y
بررسی IP:
ip addr
فرض کنیم Kali این IP را داشته باشد:
192.168.56.10
بخش چهارم: اجرای DVWA
برای آزمایشگاه میتوانید DVWA را روی یک ماشین مجازی لینوکسی جداگانه اجرا کنید.
پس از راهاندازی وبسرور و DVWA، مطمئن شوید برنامه فقط روی شبکه آزمایشگاهی در دسترس است.
برای مثال:
http://192.168.56.20
اگر صفحه DVWA باز شد، آزمایشگاه آماده است.
بخش پنجم: اولین شناسایی با Nmap
حالا از Kali هدف آزمایشگاهی را بررسی میکنیم.
nmap 192.168.56.20
اگر وبسرور فعال باشد، ممکن است پورتهایی مانند:
80/tcp
443/tcp
را مشاهده کنید.
حالا تشخیص نسخه:
nmap -sV 192.168.56.20
و برای بررسی دقیقتر:
nmap -sC -sV 192.168.56.20
اینجا یک نکته مهم را یاد میگیریم:
قبل از تست امنیتی باید بدانیم هدف چه سرویسهایی ارائه میکند.
بخش ششم: ورود به DVWA
در مرورگر Kali وارد شوید:
http://192.168.56.20
صفحه DVWA را مشاهده خواهید کرد.
پس از ورود، سطح امنیتی برنامه را برای تمرین آموزشی انتخاب کنید.
برای شروع، Low مناسبتر است؛ چون هدف ما مشاهده رفتار آسیبپذیری و درک مکانیزم آن است.
بخش هفتم: Burp Suite چیست؟
حالا یکی از جذابترین قسمتهای آزمایشگاه را شروع میکنیم.
Burp Suite یک مجموعه ابزار برای بررسی امنیت برنامههای وب است.
در این آموزش از آن برای مشاهده و تحلیل درخواستهای HTTP استفاده میکنیم.
در Kali معمولاً میتوانید آن را از منوی Applications اجرا کنید.
بخش هشتم: ساخت Proxy در Burp
Burp را اجرا کنید.
در بخش Proxy یک Listener محلی ایجاد شده است.
معمولاً:
127.0.0.1:8080
است.
مرورگر را طوری تنظیم کنید که درخواستهای آن از Proxy عبور کنند.
ساختار ارتباط:
Browser
│
▼
Burp Suite
│
▼
DVWA
حالا وقتی در سایت آزمایشگاهی صفحهای را باز میکنید، درخواست HTTP را در Burp مشاهده خواهید کرد.
بخش نهم: مشاهده یک درخواست HTTP
فرض کنید در DVWA یک فرم وجود دارد.
وقتی فرم را ارسال میکنید، Burp میتواند چیزی شبیه این را نشان دهد:
POST /dvwa/... HTTP/1.1
Host: 192.168.56.20
Content-Type: application/x-www-form-urlencoded
نکته مهم اینجاست:
ما دیگر فقط ظاهر سایت را نمیبینیم.
میتوانیم ببینیم:
- درخواست به کجا ارسال میشود؟
- Method چیست؟
- چه پارامترهایی ارسال میشوند؟
- Headerها چه هستند؟
- Cookie چگونه استفاده میشود؟
این یکی از مهمترین مهارتهای Web Pentesting است.
بخش دهم: SQL Injection چیست؟
یکی از معروفترین آسیبپذیریهای وب، SQL Injection است.
به زبان ساده، زمانی رخ میدهد که ورودی کاربر بدون اعتبارسنجی مناسب وارد یک Query پایگاه داده شود.
تصور کنید برنامه چنین منطقی داشته باشد:
User Input
↓
Application
↓
SQL Query
↓
Database
اگر برنامه ورودی را بهدرستی کنترل نکند، داده ورودی کاربر ممکن است ساختار Query را تغییر دهد.
در DVWA میتوانیم این مفهوم را بهصورت کنترلشده مشاهده کنیم.
بخش یازدهم: تمرین SQL Injection در DVWA
وارد بخش SQL Injection شوید.
در حالت آموزشی Low، برنامه یک ورودی برای شناسه کاربر در اختیار شما قرار میدهد.
بهجای اینکه فوراً سراغ Payloadهای پیچیده برویم، ابتدا رفتار عادی برنامه را بررسی کنید.
مثلاً یک مقدار معتبر وارد کنید و نتیجه را ببینید.
سپس همان درخواست را در Burp مشاهده کنید.
سؤال اصلی:
کدام پارامتر از طرف کاربر کنترل میشود؟
این نوع نگاه بسیار مهمتر از حفظ کردن Payload است.
بخش دوازدهم: XSS چیست؟
Cross-Site Scripting یا XSS نوع دیگری از آسیبپذیریهای مهم وب است.
در XSS، برنامه ممکن است ورودی کنترلنشده کاربر را در صفحه نمایش دهد و باعث اجرای محتوای ناخواسته در مرورگر شود.
در DVWA میتوان این مفهوم را بهشکل کاملاً کنترلشده مشاهده کرد.
ساختار کلی:
User Input
↓
Web Application
↓
HTML Response
↓
Browser
اگر ورودی بهدرستی پاکسازی یا Encode نشده باشد، میتواند باعث ایجاد XSS شود.
بخش سیزدهم: چرا Burp Suite مهم است؟
فرض کنید بدون Burp فقط صفحه سایت را میبینید.
اما با Burp:
Request
↓
Headers
↓
Parameters
↓
Cookies
↓
Response
را مشاهده میکنید.
به همین دلیل Burp یکی از ابزارهای مهم در مسیر یادگیری Web Application Penetration Testing محسوب میشود.
بخش چهاردهم: بررسی Headerهای HTTP
در Burp میتوانید Headerهای درخواست و پاسخ را مشاهده کنید.
مثلاً:
Host:
User-Agent:
Cookie:
Content-Type:
Content-Length:
در پاسخ نیز ممکن است مواردی مانند:
Server:
Content-Type:
Set-Cookie:
وجود داشته باشند.
از همین اطلاعات میتوان برای شناخت رفتار برنامه استفاده کرد.
بخش پانزدهم: تمرین File Upload
DVWA بخشی برای بررسی File Upload نیز دارد.
در این قسمت هدف آموزشی این است که بفهمیم:
چرا آپلود فایل بدون کنترل مناسب خطرناک است؟
یک برنامه امن باید مواردی مانند:
- نوع فایل
- Extension
- MIME Type
- حجم فایل
- نام فایل
- محل ذخیره
- قابلیت اجرای فایل
را بهدرستی کنترل کند.
در آزمایشگاه میتوانید رفتار برنامه را بررسی کنید و ببینید چه کنترلهایی وجود دارند.
بخش شانزدهم: Command Injection
یکی دیگر از موضوعات مهم DVWA، Command Injection است.
مشکل زمانی ایجاد میشود که یک برنامه ورودی کاربر را بدون کنترل مناسب وارد دستور سیستمعامل کند.
ساختار خطرناک:
User Input
↓
Application
↓
OS Command
↓
Operating System
در یک برنامه امن باید ورودی کاربر کاملاً اعتبارسنجی شود و تا حد امکان از اجرای مستقیم Commandهای سیستمعامل جلوگیری شود.
در DVWA میتوانید این مفهوم را در یک محیط کنترلشده مطالعه کنید.
بخش هفدهم: از آزمایشگاه چه چیزی یاد میگیریم؟
هدف اصلی این آزمایشگاه این نیست که فقط چند آسیبپذیری را اجرا کنیم.
بلکه باید یاد بگیریم:
Recon
↓
Enumeration
↓
HTTP Analysis
↓
Input Identification
↓
Vulnerability Analysis
↓
Validation
↓
Remediation
↓
Report
این دقیقاً همان فرایندی است که در تست نفوذ حرفهای اهمیت دارد.
🧠 تمرین حرفهای برای کاربران صفر و یک سایبر
حالا یک چالش برای شما:
مرحله ۱
با Nmap سرویسهای ماشین DVWA را پیدا کنید.
مرحله ۲
با Burp یک درخواست HTTP را مشاهده کنید.
مرحله ۳
یک پارامتر قابلکنترل توسط کاربر پیدا کنید.
مرحله ۴
بررسی کنید برنامه چگونه ورودی را پردازش میکند.
مرحله ۵
در سطح Low یکی از آسیبپذیریهای آموزشی DVWA را بررسی کنید.
مرحله ۶
همان آسیبپذیری را در سطح امنیتی بالاتر مقایسه کنید.
مرحله ۷
توضیح دهید:
چه تغییری باعث شد آسیبپذیری سختتر یا غیرقابل بهرهبرداری شود؟
این قسمت از آموزش بسیار مهم است؛ چون شما را از Attacker Mindset به سمت Defender Mindset هم میبرد.
🛡️ بخش مهم: چگونه آسیبپذیری را برطرف کنیم؟
یک متخصص امنیت فقط نباید بگوید:
«این سایت آسیبپذیر است.»
باید بتواند بگوید:
«چرا آسیبپذیر است و چگونه باید برطرف شود؟»
برای مثال در برابر SQL Injection:
- استفاده از Prepared Statements
- اعتبارسنجی ورودی
- عدم اتصال مستقیم ورودی کاربر به Query
- محدود کردن دسترسی حساب دیتابیس
در برابر XSS:
- Output Encoding
- Input Validation
- استفاده صحیح از Content Security Policy
- مدیریت صحیح دادههای قابل نمایش در HTML
⚠️ چند اشتباه خطرناک
❌ DVWA را روی اینترنت قرار ندهید
این برنامه عمداً آسیبپذیر است.
❌ IP عمومی را هدف تمرین قرار ندهید
از شبکه Host-only یا آزمایشگاه ایزوله استفاده کنید.
❌ Payloadهای آزمایشگاهی را روی سایتهای واقعی امتحان نکنید.
❌ فقط روی Exploit تمرکز نکنید.
یک متخصص واقعی باید علت آسیبپذیری و راهکار اصلاح آن را هم بداند.
🏆 پروژه نهایی
در پایان، برای خودتان یک گزارش کوچک بنویسید:
Target:
DVWA
Target IP:
192.168.56.20
Open Ports:
...
Web Server:
...
Technology:
...
Vulnerability:
...
Root Cause:
...
Impact:
...
Recommended Fix:
...
اگر بتوانید چنین گزارشی تهیه کنید، دیگر فقط یک کاربر نیستید که دستورات Nmap را حفظ کرده؛ دارید مثل یک تست نفوذکار فکر میکنید.

دیدگاه شما