mini-pentest-scanner 1.0.0
Non-intrusive Security Assessment Tool - Educational Security Scanner
License: MIT
Requires Python: >=3.9
Keywords: security, scanner, pentest, vulnerability, assessment

# 🧪 Mini Pentest Lab

**สนามทดลองสำหรับการศึกษาและป้องกันช่องโหว่**

## ⚠️ คำเตือนสำคัญ

**ใช้เพื่อการศึกษาเท่านั้น!**

- ❌ ไม่ควรใช้ใน production
- ❌ ไม่ควรเปิดให้เข้าถึงจาก internet
- ❌ ไม่ควรใช้ข้อมูลจริง
- ✅ ใช้เพื่อเรียนรู้และป้องกันช่องโหว่

## 🎯 เป้าหมาย

สร้าง "สนามทดลอง" ที่ทำให้เห็นว่า:
- ช่องโหว่เกิดยังไง
- ความเสี่ยงคืออะไร
- ควรแก้ยังไง

## 🏗️ โครงสร้างโปรเจกต์

```
mini-pentest-lab/
│
├── vulnerable-app/        # เว็บเป้าหมาย (มีช่องโหว่)
│   ├── app/
│   ├── database/
│   ├── templates/
│   └── README.md
│
├── secure-app/            # เว็บที่แก้ไขช่องโหว่แล้ว ✅
│   ├── app/
│   ├── database/
│   ├── templates/
│   └── README.md
│
├── scanner/               # โปรแกรมวิเคราะห์ช่องโหว่
│   ├── core/
│   ├── checks/
│   └── scanner.py
│
├── dashboard/             # เว็บแสดงผล
│   ├── backend/
│   └── frontend/
│
├── tests/                 # Test cases
│   └── test_vulnerabilities.py
│
├── reports/               # รายงานที่ generate
│
├── docs/                  # เอกสารประกอบ
│   ├── BEST_PRACTICES.md
│   └── THREAT_MODEL.md
│
└── README.md
```

## 🚀 Quick Start

### สำหรับผู้ที่เก็บ Python ไว้ที่ D:\py

**วิธีที่ง่ายที่สุด (แนะนำ):**
```bash
cd D:\H123\mini-pentest-lab
RUN_ALL.bat
```

หรือใช้ `QUICK_RUN.bat` - จะรันทุกอย่างอัตโนมัติ!

---

### วิธีแบบละเอียด

#### 1. ติดตั้ง Dependencies (ทำครั้งเดียว)

```bash
cd D:\H123\mini-pentest-lab
setup.bat
```

#### 2. รัน Vulnerable App (มีช่องโหว่)

**Terminal 1:**
```bash
cd D:\H123\mini-pentest-lab
start_vulnerable_app.bat
```

เปิดเบราว์เซอร์: `http://127.0.0.1:5000`

#### 3. รัน Tests

**Terminal 2:**
```bash
cd D:\H123\mini-pentest-lab\tests
run_tests_custom.bat
```

---

**ดู [SIMPLE_GUIDE.md](SIMPLE_GUIDE.md) สำหรับคู่มือง่ายๆ**

---

### สำหรับผู้ที่ Python อยู่ใน PATH

### 1. Vulnerable App (มีช่องโหว่)

```bash
cd vulnerable-app
pip install -r requirements.txt
python -m app.main
```

เปิดเบราว์เซอร์: `http://127.0.0.1:5000`

### 2. Secure App (แก้ไขช่องโหว่แล้ว)

```bash
cd secure-app
pip install -r requirements.txt
python -m app.main
```

เปิดเบราว์เซอร์: `http://127.0.0.1:5002`

### 3. Scanner

```bash
cd scanner
pip install -r requirements.txt
python scanner.py http://127.0.0.1:5000
```

### 4. Dashboard

```bash
cd dashboard/backend
pip install -r requirements.txt
python app.py
```

เปิดเบราว์เซอร์: `http://127.0.0.1:5001`

### 5. Tests

```bash
cd tests
pip install requests
python test_vulnerabilities.py
```

## 👤 บัญชีผู้ใช้เริ่มต้น

### Admin
- Username: `admin`
- Password: `admin123`

### User
- Username: `user1`
- Password: `password123`

## 🔍 ช่องโหว่ที่จงใจสร้าง (ใน Vulnerable App)

1. **SQL Injection** - Login, Register, Search
2. **Cross-Site Scripting (XSS)** - Search, Post creation
3. **Insecure Direct Object Reference (IDOR)** - Profile view
4. **Weak Authentication** - MD5 hashing, no rate limiting
5. **Session Management Issues** - No session regeneration
6. **Information Disclosure** - Error messages, Debug endpoint
7. **Cross-Site Request Forgery (CSRF)** - Form submissions
8. **Path Traversal** - File viewer

## 📚 วิธีศึกษา

### Phase 1: สังเกตและเข้าใจ
1. ใช้ Vulnerable App (login, สร้าง post, ดู profile)
2. เปิด Browser DevTools ดู Request/Response
3. สังเกต error messages
4. ดูโค้ดใน `vulnerable-app/app/`

### Phase 2: วิเคราะห์ความเสี่ยง
1. ระบุช่องโหว่แต่ละจุด
2. ประเมินความรุนแรง
3. คิดว่าผู้โจมตีจะใช้ประโยชน์อย่างไร

### Phase 3: เรียนรู้การป้องกัน
1. ดู Secure App เปรียบเทียบ
2. อ่าน Best Practices
3. ดู Threat Model

### Phase 4: ทดสอบ
1. รัน Scanner
2. รัน Tests
3. ใช้ Dashboard ดูผล

## 📖 เอกสาร

### 📚 คู่มือหลัก
- **[USER_MANUAL.md](USER_MANUAL.md)** - 📖 คู่มือการใช้งานแบบละเอียด (แนะนำ!)
- [QUICKSTART.md](QUICKSTART.md) - คู่มือเริ่มต้นใช้งาน
- [START_HERE.md](START_HERE.md) - คู่มือสำหรับ Python ที่ D:\py
- [SIMPLE_GUIDE.md](SIMPLE_GUIDE.md) - คู่มือง่ายๆ

### 📋 เอกสารเทคนิค
- [COMPARISON.md](COMPARISON.md) - เปรียบเทียบ Vulnerable vs Secure
- [docs/BEST_PRACTICES.md](docs/BEST_PRACTICES.md) - Best Practices
- [docs/THREAT_MODEL.md](docs/THREAT_MODEL.md) - Threat Model
- [docs/I18N_GUIDE.md](docs/I18N_GUIDE.md) - คู่มือระบบหลายภาษา
- [TROUBLESHOOTING.md](TROUBLESHOOTING.md) - แก้ไขปัญหา

### 📦 เอกสารส่วนประกอบ
- [vulnerable-app/README.md](vulnerable-app/README.md) - Vulnerable App
- [secure-app/README.md](secure-app/README.md) - Secure App
- [scanner/README.md](scanner/README.md) - Scanner
- [dashboard/README.md](dashboard/README.md) - Dashboard
- [tests/README.md](tests/README.md) - Tests

## 🛠️ Tech Stack

### Vulnerable App & Secure App
- **Backend**: Flask (Python)
- **Database**: SQLite
- **Frontend**: HTML/CSS

### Scanner
- **Language**: Python
- **Libraries**: requests

### Dashboard
- **Backend**: Flask API
- **Frontend**: HTML/CSS/JavaScript

## 🧠 แนวคิดสำคัญ

### ไม่สอนเจาะ แต่สอนป้องกัน

Lab นี้ไม่ได้สอนให้เจาะระบบ แต่สอนให้:
- ✅ เข้าใจว่าช่องโหว่เกิดจากอะไร
- ✅ วิเคราะห์ความเสี่ยงได้
- ✅ รู้วิธีป้องกันที่ถูกต้อง
- ✅ สื่อสารผลได้

### Mindset ที่ถูกต้อง

- ❌ ไม่ใช่: "ฉันใช้ tool เก่ง"
- ✅ แต่คือ: "ฉันเข้าใจความเสี่ยงและป้องกันได้"

## 📊 Phase 2+ Features

### ✅ Scanner
- ตรวจสอบ SQL Injection
- ตรวจสอบ XSS
- ตรวจสอบ IDOR
- ตรวจสอบ Information Disclosure
- ตรวจสอบ Authentication Issues
- ตรวจสอบ Session Management

### ✅ Dashboard
- Web interface สำหรับสแกน
- แสดงผล real-time
- สถิติการสแกน
- รายละเอียดช่องโหว่

### ✅ Best Practices
- คู่มือป้องกันช่องโหว่
- Code examples
- Security guidelines

### ✅ Test Cases
- Unit tests สำหรับช่องโหว่
- Automated testing
- Test documentation

### ✅ Secure App
- แก้ไขช่องโหว่ทั้งหมด
- เปรียบเทียบกับ Vulnerable App
- Security best practices

## 🤝 การมีส่วนร่วม

โปรเจกต์นี้สร้างเพื่อการศึกษา หากพบปัญหาหรือมีข้อเสนอแนะ กรุณาแจ้งมาได้

## 📝 License

ใช้เพื่อการศึกษาเท่านั้น

---

**จำไว้เสมอ**: ใช้เพื่อการศึกษาเท่านั้น! 🎓

**Security is a process, not a product!** 🔒