> For the complete documentation index, see [llms.txt](https://n4shx.gitbook.io/wiki/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://n4shx.gitbook.io/wiki/schule/mspl-2/web-testing.md).

# Web Testing

In diesem Abschnitt werden typische Web-Schwachstellen getestet, wie sie auch in DVWA und Mutillidae vorkommen.

Ziel:

* Schwachstellen finden
* Angriffe verstehen
* später Massnahmen ableiten

***

### File Upload Vulnerabilities (DVWA)

#### Problem

Beim File Upload kann ein Angreifer schädliche Dateien hochladen, z.B.:

* PHP Shell
* Webshell
* Script-Dateien

Wenn diese ausführbar sind → Remote Code Execution

***

#### Testen

Typischer Ablauf:

1. Upload-Funktion finden
2. Datei hochladen (z.B. .php)
3. Zugriff auf Datei testen

Beispiel:

```
shell.php hochladen → im Browser öffnen
https://test.com/files/shell.php
```

#### Massnahmen (kurz)

* nur erlaubte Dateitypen (Whitelist)
* Server-seitige Validierung
* Upload-Verzeichnis nicht ausführbar

***

### Cross-Site Scripting (XSS)

#### Problem

Benutzereingaben werden ungefiltert angezeigt → Script wird ausgeführt.

***

#### Testen

Input-Felder testen mit:

```
<script>alert(1)</script>
```

Oder:

```
<img src=x onerror=alert(1)>
```

***

#### Ziel

* Script im Browser ausführen
* Session / Cookies abgreifen

***

#### Massnahmen (kurz)

* Output Encoding
* Input Validierung
* Einsatz von Security Headers (siehe unten)

***

### SQL Injection (Mutillidae)

#### Problem

User Input wird direkt in SQL Queries eingebaut.

***

#### Testen

Login umgehen:

```
' OR 1=1 --
```

***

#### Beispiel

```
user: admin
pass: ' OR 1=1 --
```

👉 Login wird bypassed

***

#### Massnahmen (kurz)

* Prepared Statements
* keine direkte String-Verkettung
* Input Validierung

***

### Security Headers (kurz erklärt)

Security Headers schützen Webanwendungen direkt im Browser und helfen, Angriffe wie XSS zu verhindern.

***

#### Content Security Policy (CSP)

Definiert, welche Inhalte geladen werden dürfen.

Beispiel:

```
Content-Security-Policy: default-src 'self'
```

👉 Effekt:

* verhindert das Laden fremder Scripts
* reduziert XSS Risiko

***

#### HTTP Strict Transport Security (HSTS)

Erzwingt HTTPS-Verbindungen.

```
Strict-Transport-Security: max-age=31536000
```

👉 Effekt:

* kein unsicheres HTTP mehr
* Schutz vor Man-in-the-Middle

***

#### Weitere wichtige Header

* X-Content-Type-Options → verhindert MIME Sniffing
* X-Frame-Options → schützt vor Clickjacking

👉 Check:\
<https://securityheaders.com>

***

### Wichtig

Web Testing folgt oft diesem Ablauf:

```
1. Input finden
2. Input manipulieren
3. Verhalten analysieren
4. Exploit durchführen
```

### Authentication & Sessions

Typische Probleme:

* schwache Passwörter
* keine Rate Limits (Bruteforce möglich)
* Session IDs nicht geschützt

Angriffe:

* Brute Force
* Session Hijacking

Massnahmen:

* starke Passwörter
* MFA
* sichere Cookies (HttpOnly, Secure)

### Cookies

Cookies speichern Session-Informationen.

Wichtige Flags:

* HttpOnly → schützt vor XSS
* Secure → nur über HTTPS
* SameSite → schützt vor CSRF
