Share
## https://sploitus.com/exploit?id=57BB64FC-9B0C-5165-B1DF-0B8643378F07
# آزمایشگاه تزریق SQL (SQL Injection Lab)

یک محیط آموزشی جامع برای یادگیری، آزمایش و دفاع در برابر حملات تزریق SQL.

## 📖 فهرست مطالب

- [معرفی](#معرفی)
- [ویژگی‌ها](#ویژگیها)
- [ساختار پروژه](#ساختار-پروژه)
- [راه‌اندازی سریع](#راهاندازی-سریع)
- [استفاده](#استفاده)
- [آزمایش‌ها](#آزمایشها)
- [ابزارها](#ابزارها)
- [دفاع](#دفاع)
- [گزارش‌گیری](#گزارشگیری)
- [مجوز](#مجوز)

## 🎯 معرفی

آزمایشگاه تزریق SQL یک محیط آزمایشی کامل برای:

1. **یادگیری مفاهیم تزریق SQL**
2. **آزمایش تکنیک‌های مختلف نفوذ**
3. **پیاده‌سازی روش‌های دفاعی**
4. **توسعه مهارت‌های امنیتی**

این پروژه با هدف آموزش توسعه‌دهندگان و متخصصان امنیت طراحی شده است.

## ✨ ویژگی‌ها

### 🎓 آموزشی
- محیط آزمایشی کنترل شده
- مثال‌های عملی و واقعی
- مستندات فارسی کامل

### 🛡️ امنیتی
- آسیب‌پذیری‌های عمدی برای آموزش
- پیاده‌سازی روش‌های دفاعی
- سیستم تشخیص نفوذ

### 🔧 فنی
- پشتیبانی از SQLite
- ابزارهای تست خودکار
- سیستم گزارش‌گیری پیشرفته

### 🧪 آزمایشی
- انواع مختلف تزریق SQL
- پیلودهای متنوع
- سناریوهای واقعی

## 🗂️ ساختار پروژه


sqlite-injection-lab/
├── 📁 database/ # مدیریت پایگاه داده
│ ├── app.db # فایل پایگاه داده SQLite
│ ├── db_manager.py # مدیریت و راه‌اندازی دیتابیس
│ └── schema.sql # طرح پایگاه داده
├── 📁 scripts/ # اسکریپت‌های تست
│ ├── advanced_attacks.py # حملات پیشرفته
│ ├── automated_pentest.py # تست نفوذ خودکار
│ ├── ids_system.py # سیستم تشخیص نفوذ
│ ├── sqlmap_integration.py # یکپارچه‌سازی با SQLMap
│ └── 📁 exploit_scripts/ # اسکریپت‌های اکسپلویت
│ ├── time_based_exploit.py # اکسپلویت Time-Based
│ ├── union_exploit.py # اکسپلویت Union-Based
│ ├── blind_exploit.py # اکسپلویت Blind-Based
│ ├── second_order_exploit.py # اکسپلویت Second-Order
│ └── error_based_exploit.py # اکسپلویت Error-Based
├── 📁 app/ # برنامه اصلی
│ ├── vulnerable_app.py # برنامه Flask آسیب‌پذیر
│ ├── secure_db.py # کتابخانه امن دیتابیس
│ ├── waf_middleware.py # فایروال برنامه وب
│ ├── 📁 templates/ # قالب‌های HTML
│ │ ├── index.html # صفحه اصلی
│ │ ├── vulnerable_login.html # صفحه لاگین آسیب‌پذیر
│ │ ├── secure_login.html # صفحه لاگین امن
│ │ ├── dashboard.html # داشبورد کاربر
│ │ ├── vulnerable_search.html # صفحه جستجوی آسیب‌پذیر
│ │ └── vulnerable_report.html # صفحه گزارش آسیب‌پذیر
│ └── 📁 static/ # فایل‌های استاتیک
│ └── style.css # استایل‌های CSS
├── 📁 payloads/ # مجموعه پیلودها
│ ├── sqlite_payloads.txt # پیلودهای SQLite
│ ├── bypass_waf.txt # پیلودهای عبور از WAF
│ ├── advanced_injection.txt # پیلودهای پیشرفته
│ └── payload_generator.py # تولید کننده پیلود
├── 📁 logs/ # فایل‌های لاگ
├── 📁 reports/ # گزارش‌های تست
├── config.py # تنظیمات پیکربندی
├── README.md # این فایل
└── راهنمای-کامل-فارسی.md # راهنمای فارسی کامل



## 🚀 راه‌اندازی سریع

### پیش‌نیازها
- Python 3.8 یا بالاتر
- pip (مدیریت پکیج‌های Python)

### نصب و راه‌اندازی

```bash
# 1. دانلود یا کلون پروژه
git clone 
cd sqlite-injection-lab

# 2. نصب وابستگی‌ها
pip install flask sqlite3 requests beautifulsoup4

# 3. راه‌اندازی پایگاه داده
python database/db_manager.py

# 4. اجرای برنامه
python app/vulnerable_app.py

دسترسی
آدرس برنامه: http://localhost:5000

اعتبارهای پیش‌فرض:

مدیر: admin / Admin123

کاربر: user1 / User123

تست: test / Test123

🔬 استفاده
صفحه‌های اصلی
1. صفحه اصلی (/)
مرور کلی پروژه

دسترسی سریع به بخش‌ها

راهنمای شروع

2. لاگین آسیب‌پذیر (/vulnerable_login)
آسیب‌پذیری: Classic SQL Injection

پیلودهای تست:

sql
' OR '1'='1
admin'--
' UNION SELECT 1,2,3--
3. جستجوی آسیب‌پذیر (/vulnerable_search)
آسیب‌پذیری: Union-Based SQL Injection

پیلودهای تست:

sql
' UNION SELECT name, sql FROM sqlite_master--
' UNION SELECT username, password_hash FROM users--
4. گزارش آسیب‌پذیر (/vulnerable_report)
آسیب‌پذیری: Time-Based Blind SQL Injection

پیلودهای تست:

sql
2024-01-01' AND randomblob(1000000000)--
5. لاگین امن (/secure_login)
پیاده‌سازی امن با Parameterized Queries

اعتبارسنجی ورودی

Rate Limiting

ابزارهای تست
1. تست خودکار
bash
python scripts/automated_pentest.py http://localhost:5000
2. تست پیشرفته
bash
python scripts/advanced_attacks.py
3. سیستم تشخیص نفوذ
bash
python scripts/ids_system.py
4. یکپارچه‌سازی با SQLMap
bash
python scripts/sqlmap_integration.py http://localhost:5000/vulnerable_login --advanced
🧪 آزمایش‌ها
انواع تزریق SQL پشتیبانی شده
1. Classic SQL Injection
بای‌پس احراز هویت

استخراج داده

اجرای دستورات

2. Union-Based Injection
تشخیص تعداد ستون‌ها

استخراج ساختار دیتابیس

بازیابی داده‌های حساس

3. Blind SQL Injection
Boolean-Based

Time-Based

استخراج بیتی داده

4. Error-Based Injection
استخراج داده از خطاها

استفاده از توابع CAST

تشخیص نسخه دیتابیس

5. Second-Order Injection
ذخیره و اجرای پیلود

تغییر داده‌های دیگر کاربران

افزایش سطح دسترسی

پیلودهای نمونه
بای‌پس لاگین
sql
' OR '1'='1
admin'--
' OR 'a'='a
استخراج اطلاعات
sql
' UNION SELECT sqlite_version(), NULL--
' UNION SELECT name, sql FROM sqlite_master--
' UNION SELECT username, password_hash FROM users--
تاخیر زمانی
sql
' AND (SELECT randomblob(1000000000))--
' OR (SELECT CASE WHEN (1=1) THEN randomblob(1000000000) ELSE 0 END)--
🛡️ دفاع
روش‌های دفاعی پیاده‌سازی شده
1. Parameterized Queries
python
# ناامن
query = f"SELECT * FROM users WHERE username = '{username}'"

# امن
query = "SELECT * FROM users WHERE username = ?"
cursor.execute(query, (username,))
2. Input Validation
اعتبارسنجی طول

فیلتر کاراکترهای خطرناک

Whitelist validation

3. Least Privilege
محدودیت دسترسی دیتابیس

جداول سیستم فقط خواندنی

کاربران با حداقل دسترسی

4. Web Application Firewall
تشخیص الگوهای تزریق

Rate Limiting

بلاک IP های مشکوک

5. Logging & Monitoring
لاگ‌گیری تمام کوئری‌ها

تشخیص خودکار حملات

هشدارهای امنیتی

📊 گزارش‌گیری
انواع گزارش‌ها
1. گزارش تست نفوذ
لیست آسیب‌پذیری‌ها

سطح خطر

پیلودهای موفق

توصیه‌های اصلاحی

2. گزارش اکسپلویت
داده‌های استخراج شده

ساختار دیتابیس

اطلاعات کاربران

لاگ‌های اجرا

3. گزارش SQLMap
خروجی کامل SQLMap

داده‌های دامپ شده

خلاصه نتایج

محل ذخیره گزارش‌ها
پوشه reports/

فرمت‌های JSON و TXT

تاریخ‌گذاری خودکار

👥 مخاطبان
توسعه‌دهندگان وب
یادگیری آسیب‌پذیری‌های رایج

آشنایی با روش‌های دفاعی

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

متخصصان امنیت
تمرین تکنیک‌های تست نفوذ

توسعه ابزارهای امنیتی

آموزش به تیم‌های توسعه

دانشجویان و پژوهشگران
تحقیق در زمینه امنیت وب

انجام آزمایش‌های کنترل شده

توسعه مهارت‌های عملی

⚠️ هشدارها و محدودیت‌ها
هشدارهای امنیتی
فقط برای آموزش: این پروژه فقط برای اهداف آموزشی طراحی شده است.

استفاده مجاز: فقط روی سیستم‌هایی که مالک آن هستید یا مجوز دارید آزمایش کنید.

عدم استفاده مخرب: استفاده از این ابزارها برای آسیب به سیستم‌های دیگر غیرقانونی است.

مسئولیت: شما مسئول استفاده از این ابزارها هستید.

محدودیت‌های فنی
SQLite: فقط پایگاه داده SQLite پشتیبانی می‌شود.

Python: نیاز به Python 3.8 یا بالاتر دارد.

Flask: فریم‌ورک وب استفاده شده Flask است.

محیط آزمایشی: برای محیط‌های تولید طراحی نشده است.

🤝 مشارکت
گزارش مشکلات
Issue جدید ایجاد کنید

مشکل را به طور کامل شرح دهید

کدهای مربوطه را ضمیمه کنید

پیشنهاد بهبود
Fork پروژه

تغییرات را ایجاد کنید

Pull Request ارسال کنید

توسعه ویژگی‌های جدید
با maintainerها هماهنگ کنید

از استانداردهای کدنویسی پیروی کنید

تست‌های واحد بنویسید

📚 منابع آموزشی
مستندات
OWASP SQL Injection Prevention Cheat Sheet

SQLite Official Documentation

Flask Security Documentation

دوره‌های آموزشی
OWASP Web Security Testing Guide

SANS Web Application Penetration Testing

Coursera: Web Security Fundamentals

ابزارها
SQLMap

Burp Suite

OWASP ZAP

📄 مجوز
این پروژه تحت مجوز MIT منتشر شده است.

text
مجوز MIT

کپی رایت (c) 2024 آزمایشگاه تزریق SQL

به هر شخصی که یک کپی از این نرم‌افزار و مستندات مرتبط
( "نرم افزار") را دریافت می کند، بدون هیچ هزینه ای، مجوز داده می شود
تا بدون محدودیت در حقوق استفاده از نرم افزار، از جمله
حقوق استفاده، کپی، تغییر، ادغام، انتشار، توزیع،
ساب لیسانس و/یا فروش کپی های نرم افزار، و اجازه می دهد
به افرادی که نرم افزار به آنها ارائه می شود، مشروط بر موارد زیر:

اعلامیه حق چاپ فوق و این مجوز باید در همه
کپی ها یا بخش های قابل توجهی از نرم افزار گنجانده شود.

نرم افزار "همانطور که هست" ارائه می شود، بدون هیچ گونه تضمینی،
صریح یا ضمنی، از جمله اما نه محدود به تضمین های
تجاری، مناسب بودن برای هدف خاص و عدم نقض.
در هیچ موردی نویسندگان یا دارندگان حق چاپ مسئول
هر گونه ادعا، خسارت یا مسئولیت دیگری نباشند،
خواه در یک اقدام قرارداد، تخلف یا غیره، ناشی از،
خارج از یا در ارتباط با نرم افزار یا استفاده یا سایر معاملات
در نرم افزار.
🙏 تقدیر و تشکر
جامعه OWASP برای استانداردها و راهنماها

توسعه‌دهندگان SQLite و Flask

تمامی مشارکت‌کنندگان و تست‌کنندگان

📞 پشتیبانی
برای پشتیبانی و سوالات:

Issues در GitHub را بررسی کنید

مستندات فارسی را مطالعه کنید

از انجمن‌های تخصصی کمک بگیرید

یادداشت پایانی: امنیت یک سفر است، نه مقصد. به یادگیری ادامه دهید و مسئولیت‌پذیر باشید.

ساخته شده با ❤️ برای جامعه امنیت سایبری ایران