Lässt es sich mit cremefarbenem Papier, einer Tönung, mehr Kontrast oder größerer Schrift besser lesen? Wählen Sie Ihre Farben und Ihre Schrift, einmalig für alle Seiten.

Kostenlose Lektion

DVWA-Grundlagen

Die ganze Lektion steht hier zum Lesen. Erstellen Sie ein kostenloses Konto, um sie in einem Live-Lab auszuführen.

Container-Lab5 Min. Lesezeit1 Befehl

Was du machst

Eine Website fragt eine Datenbank nach Informationen. Sie nutzt dafür eine Frage in einer Sprache namens SQL. Setzt die Website deine Eingabe einfach in diese Frage ein, kannst du die Frage verändern. Das heißt SQL-Injection und ist eine der häufigsten Schwachstellen im Web. Mit DVWA kannst du das gefahrlos tun und siehst danach die Lösung.

Die eine Regel

Warnung

In diesem Lab läuft eine Website, die absichtlich unsicher ist. Greife sie an und sonst nichts. Es ist deine eigene, private Kopie ohne Verbindung zum Internet, daher kann niemand sonst betroffen sein. Probiere das niemals bei einer Website aus, die nicht dir gehört: Im Vereinigten Königreich ist das eine Straftat nach dem Computer Misuse Act 1990.

Bevor du anfängst

Notiz

Klicke oben in der Leiste dieser Lektion auf Lab starten und warte, bis dort steht, dass es läuft. Die Website öffnest du über den Link DVWA in der Leiste. Jede Schaltfläche Ausführen unten tippt ihren Befehl ins Terminal deines Labs, einen nach dem anderen in derselben Sitzung. Wenn du zuschauen oder eigene Befehle tippen willst, klicke in der Leiste auf Terminal öffnen (neuer Tab).

1. Prüfe, ob die Website läuft

Die Lab-Leiste sagt, dass das Lab läuft. Prüfe nun die Website: Dieser Befehl fragt in deinem Terminal nach ihrer Anmeldeseite. 200 heißt, dass sie geantwortet hat.

Befehl
curl -s -o /dev/null -w "%{http_code}\n" http://dvwa/login.php

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

2. Melde dich an

Klicke in der Lab-Leiste auf den Link DVWA und melde dich als admin mit dem Passwort password an. Wähle im Menü links DVWA Security und prüfe, dass dort low steht.

3. Stelle eine normale Frage

Wähle im Menü SQL Injection. Tippe 1 in das Feld User ID und klicke auf Submit. Die Website antwortet mit einer Person: admin. Aus deiner Eingabe hat sie eine Frage gebaut wie „Gib mir die Person mit der ID 1“.

4. Verändere die Frage

Tippe jetzt dies in dasselbe Feld und klicke auf Submit:

1' OR '1'='1

Das ' hat die Frage der Website zu früh beendet. OR '1'='1 hat eine Bedingung hinzugefügt, die immer wahr ist. Jetzt antwortet sie mit allen Personen: admin, Gordon, Hack, Pablo und Bob. Du hast nach einer gefragt und alle bekommen, weil die Website deiner Eingabe vertraut hat.

5. Lies den Code

Klicke unten auf der Seite auf View Source. Bei „low“ setzt der Code deinen Text direkt in die Frage ein. Das ist der Fehler.

6. Sieh dir die Lösung an

Wähle DVWA Security, stelle die Stufe auf impossible und klicke auf Submit. Gehe zurück zu SQL Injection und tippe 1: Es antwortet weiter mit admin. Tippe nun die Zeile aus Schritt 4: Es antwortet mit nichts. Klicke noch einmal auf View Source. Der Code prüft, dass die ID eine Zahl ist. Er schickt die Frage und deinen Text getrennt, daher kann dein Text immer nur ein Wert sein und nie Teil der Frage. Das heißt parametrisierte Abfrage, und so schützt sich eine Website vor diesem Angriff.

Für Lehrkräfte

Tipp

Diese Lektion ist ein kleines Beispiel für eine Lektion, die in einem Lab abläuft: Die Schritte und die Schaltflächen „Ausführen“ sind die Lektion, und das Lab ist die eigene Kopie jeder lernenden Person. DVWA hat zehn weitere Übungen auf denselben vier Stufen, daher reicht dasselbe Lab für eine ganze Unterrichtseinheit. Nichts wird für dich bewertet: Bitte um einen Screenshot jeder Übung bei „low“ und bei „impossible“ und um einen Satz dazu, was sich geändert hat. Kopiere die Lektion in dein eigenes Modul und ändere sie, oder baue im Lektionseditor über das Menü Lab eine neue von Grund auf.

Mehr in diesem Lab

Über dieses Lab und seinen Quellcode: DVWA-Lab: SQL-Injection und XSS in der Damn Vulnerable Web Application üben

Sie unterrichten eine Klasse? Weisen Sie diese Lektionen Ihren Lernenden zu, mit Bewertung und einem Lab für jede lernende Person.