Vulnerable django application for security training.
  • JavaScript 57.1%
  • CSS 35.7%
  • HTML 3.9%
  • Python 3.3%
Find a file
Uwe Krause 62d30ff515 Add usage instructions to README
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-25 15:12:18 +02:00
glesn switch to ruff as formatter 2025-11-02 15:19:28 +00:00
glesnapp Fix fixture space assignments and remove duplicates 2026-05-19 22:01:29 +02:00
staticfiles Spacing did not behave well with the fieldsets. Should have fixed css 2025-11-01 01:19:11 +00:00
.gitignore ignore database file 2025-11-02 15:31:55 +00:00
compose.yaml Remove DOMAIN environment requirement from compose 2026-05-19 22:01:18 +02:00
Dockerfile instead of preconfigured database use django fixture 2025-11-01 01:07:47 +00:00
manage.py switch to ruff as formatter 2025-11-02 15:19:28 +00:00
README.md Add usage instructions to README 2026-05-25 15:12:18 +02:00
requirements.txt retrieve domain for csrf from env 2025-10-31 23:14:59 +00:00

Die Web-Anwendung "Glesn" (bay. "gelesen", Anspielung auf "reddit", wiederum ein Wortspiel mit "read it" [reddit]) verspricht Anwendern Informationen innerhalb eines geschützten "Space" teilen zu können, dem andere Anwender nur auf Einladung beitreten können.

Jedoch lassen sich Meta-Daten der Informationen trotz fehlender Zugriffsberechtigung auslesen (CWE-200), wenn die Ressource an der GUI vorbei direkt angefragt wird (CWE-425). Aufgrund einer fehlenden Authorisationsprüfung (CWE-862) kann ein Angreifer andere Anwender oder sich selbst zu "Spaces" hinzufügen.

Zusätzlich existiert eine zweite Schwachstelle, die es erlaubt Administrationsrecht zu der Anwendung zu erhalten: Wie viele andere Anwendungen auch, bietet die Glesn-App einen Initial-Modus an, der dann aktiviert wird, wenn keine Anwender registriert sind. Der erste registrierte Account wird dann mit Administrationsrechten ausgestattet. Der Zugriff zu diesem initial-Modus ist nicht eingeschränkt (CWE-1188). In Kombination mit einem unsicheren Anwender-Verwaltungs-Endpunkt, der es ohne Autorisation (CWE-306) erlaubt Anwender zu löschen, kann ein Angreifer alle bestehenden Anwender, inklusive des bestehenden Administrations-Anwenders, löschen, um anschließend einen neuen Account anzulegen, dem nun von der Anwendung Administrationsrechte zugesprochen werden.

Diese Schwachstellen fallen in die Kategorie "Broken Access Control", der Top 1 der aktuellen OWASP "Top 10 Web Application Security Risks".

Verwendung

Docker:

docker pull code.uwekrau.se/challenges/glesn:1.0.0
docker run -p 1337:80 code.uwekrau.se/challenges/glesn:1.0.0

Docker Compose:

docker compose up

Die Anwendung ist anschließend unter http://localhost:1337 erreichbar.