Woche 7 — Web-Schwachstellen (OWASP Top 10)
Lernziele
- Die Logik jeder Kategorie des Top 10 verstehen, nicht auswendig lernen.
- Burp Suite effizient im Interception- und Repeater-Modus einsetzen.
- Einen sauberen Exploitationsnachweis schreiben: Anfrage, Antwort, Auswirkung.
Die Kategorien 2021 in je einem Satz
| Kategorie | Kerngedanke |
|---|---|
| A01 – Broken Access Control | Die Anwendung erlaubt, was sie eigentlich verbieten sollte. |
| A02 – Cryptographic Failures | Sensible Daten werden schlecht verschlüsselt oder im Klartext übertragen. |
| A03 – Injection | Benutzerdaten werden wie Code ausgeführt (SQL, LDAP, OS). |
| A04 – Insecure Design | Ein Konzeptionsfehler, kein Codefehler. |
| A05 – Security Misconfiguration | Standardwerte, Ausführlichkeit, fehlende Header. |
| A06 – Vulnerable and Outdated Components | Nicht aktualisierte Abhängigkeiten. |
| A07 – Identification and Authentication Failures | Schwache Sessions, schwache Passwörter, fehlende MFA. |
| A08 – Software and Data Integrity Failures | Kompromittierte Lieferkette. |
| A09 – Security Logging and Monitoring Failures | Man sieht nichts vorbeigehen. |
| A10 – SSRF | Der Server lässt sich in interne Bereiche lenken. |
Burp Suite in der Praxis
- Firefox so konfigurieren, dass Burp als Proxy genutzt wird (
127.0.0.1:8080), das Burp-Zertifikat installieren. - Proxy → Intercept: eine interessante Anfrage abfangen (Formular-Absendung, API-Aufruf).
- Repeater: die Anfrage senden und wiederholt abschicken, dabei jeweils nur einen Parameter ändern.
- Intruder: parametrisierte Payloads. Immer nur einen Einfügepunkt gleichzeitig, um die Lesbarkeit zu bewahren.
Zwei Beispiele, die Sie beherrschen müssen
SQL-Injection — wirklich verifizieren
Sich nicht mit einem ' OR 1=1 -- begnügen, das „mehr Zeilen anzeigt". Durch eine kontrollierte
Extraktion bestätigen:
GET /produits?id=42 UNION SELECT null, current_database(), null --
Die Antwort muss einen plausiblen Datenbanknamen enthalten. Ohne diesen Nachweis ist es nur eine Vermutung.
Gespeichertes XSS — konkrete Auswirkung
Ein <script>alert(1)</script> beweist die Speicherung, nicht die Auswirkung. Die im Bericht
erwartete Demonstration: ein Session-Diebstahl zu einem kontrollierten Endpunkt, oder eine erzwungene Aktion via
fetch('/api/user/delete', {method:'POST', credentials:'include'}).
Beginn von TP2
Sie wählen eine verwundbare Anwendung aus dem Labor (Juice Shop, DVWA oder gleichwertig). Abgabe für Woche 9:
- Drei ausgenutzte Schwachstellen des Top 10, jeweils mit Anfrage, Antwort, Auswirkung.
- Eine konkrete Behebungsmaßnahme pro Schwachstelle.