Web- und Krypto-Challenges
Gängige Web- und Krypto-Rätsel lösen
Web- und Krypto-Challenges ist eine kostenlose Cyber Security Academy-Lektion auf CoddyKit. Dies ist Lektion 2 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Cyber Security Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Cyber Security Academy-Kurs umfasst insgesamt 4 Lektionen.
Zwei Säulen: Web und Krypto
Web und Krypto sind die beiden häufigsten Einstiege in CTFs.
- Web-Challenges stellen Ihnen eine laufende Webanwendung zur Verfügung und fordern Sie auf, einen Fehler in deren Umgang mit Eingaben, Authentifizierung oder Vertrauen zu finden.
- Krypto-Challenges stellen Ihnen Chiffrat, ein Verfahren und manchmal Quellcode zur Verfügung. Sie sollen Klartext oder einen Schlüssel wiederherstellen, indem Sie einen Fehler in der Verwendung der Kryptografie ausnutzen.
Beide Bereiche belohnen methodisches Beobachten. Diese Lektion behandelt die wiederkehrenden Aufgaben in beiden Bereichen.
Erster Schritt bei einem Webziel
Bevor Sie irgendetwas ausnutzen, verschaffen Sie sich einen Überblick über die Anwendung. Sehen Sie sich den Quellcode an, untersuchen Sie Antworten und suchen Sie nach verborgenen Inhalten.
# Inspect raw response headers and body
curl -i http://target/
# Look for hidden paths the UI does not link to
gobuster dir -u http://target/ -w wordlist.txt
# Common files worth checking by hand
# /robots.txt /.git/ /backup.zip /adminSQL-Injection
SQL-Injection entsteht, wenn Benutzereingaben ohne Trennung von Code und Daten in eine Datenbankabfrage eingefügt werden.
Eine Anmeldung, die eine Abfrage wie SELECT * FROM users WHERE name='INPUT' erstellt, kann durch eine Eingabe manipuliert werden, die die Zeichenkette schließt und die Logik verändert:
# A classic auth-bypass payload supplied as the username
' OR '1'='1' --
# UNION-based extraction once the column count is known
' UNION SELECT username, password FROM users -- Die richtige Lösung gegen Injection
CTFs bringen Ihnen bei, Injection-Angriffe zu brechen, damit Sie sie abwehren können. Die richtige Abwehr sind parametrisierte Abfragen (Prepared Statements), die Benutzerdaten vollständig aus der Struktur der Abfrage heraushalten.
# Vulnerable: input becomes part of the SQL text
query = "SELECT * FROM users WHERE name='" + name + "'"
# Safe: input is bound as a parameter, never parsed as SQL
cursor.execute("SELECT * FROM users WHERE name = ?", (name,))Cross-Site-Scripting (XSS)
XSS tritt auf, wenn eine Anwendung von Angreifern kontrollierte Eingaben reflektiert oder speichert und ein Browser sie als Skript ausführt. Bei einer XSS-Challenge gibt es häufig einen Bot, der Ihre Payload besucht, während er die Flag in einem Cookie mitführt.
- Reflektiert — die Payload aus der Anfrage wird direkt zurückgegeben.
- Gespeichert — die Payload wird gespeichert und bei späteren Besuchern ausgeführt.
- DOM-basiert — clientseitiges JavaScript schreibt Eingaben unsicher in die Seite.
Die Abwehr besteht aus kontextabhängiger Ausgabekodierung und einer Content-Security-Policy. Eine Testeingabe wie <script>alert(1)</script> bestätigt, ob die Eingabe maskiert wird.
SSRF und Path Traversal
Zwei weitere Standardthemen im Webbereich:
- Server-Side Request Forgery (SSRF) — Sie bringen den Server dazu, in Ihrem Namen Anfragen zu senden, häufig an nur intern erreichbare Adressen wie
http://127.0.0.1oder einen Cloud-Metadaten-Endpunkt, um die Flag zu erreichen. - Path Traversal — Sie verlassen mit Sequenzen wie
../das vorgesehene Verzeichnis, um Dateien außerhalb des Webroots zu lesen, zum Beispiel../../../../etc/passwd.
Beide Schwachstellen entstehen dadurch, dass Benutzereingaben zur Auswahl einer Ressource vertraut wird. Zur Abwehr dienen strenge Allowlists sowie das Kanonisieren und anschließende Validieren von Pfaden vor ihrer Verwendung.
Kodierung ist keine Verschlüsselung
Die häufigste Kryptofalle für Anfänger besteht darin, Kodierung mit Verschlüsselung zu verwechseln. Kodierung kann von jeder Person ohne Schlüssel rückgängig gemacht werden und bietet daher keinerlei Vertraulichkeit.
Lernen Sie, die Formate sofort zu erkennen:
- Base64 — Buchstaben, Ziffern,
+ /, häufig mit=-Padding. - Hex — ausschließlich
0-9 a-f. - ROT13 / Caesar — lesbare Struktur mit verschobenen Buchstaben.
# Decode base64
echo 'ZmxhZ3toZWxsb30=' | base64 -d
# Decode hex
echo '666c6167' | xxd -r -pKlassische und XOR-Chiffren
Viele Krypto-Challenges verwenden schwache historische Chiffren oder nachlässig eingesetzte moderne Verfahren:
- Caesar / Vigenere — Verschiebungschiffren, die sich durch Frequenzanalyse oder das Ausprobieren aller 25 Verschiebungen brechen lassen.
- Single-Byte-XOR — die gesamte Nachricht wird mit einem Byte per XOR verknüpft. Probieren Sie alle 256 Schlüssel per Brute Force aus und wählen Sie die lesbare Ausgabe.
- Repeating-Key-XOR — lässt sich brechen, indem Sie die Schlüssellänge ermitteln und anschließend jedes Schlüsselbyte wie bei einem Single-Byte-XOR lösen.
Die Lehre daraus: Eine eigene oder klassische Chiffre bietet einem Analysten keine echte Sicherheit.
RSA-Fallstricke
RSA ist nur sicher, wenn seine Parameter korrekt gewählt werden. Bei CTF-Kryptoaufgaben erhalten Sie häufig eine fehlerhafte Instanz:
- Kleiner Modulus — wenn
nklein genug ist, können Sie ihn direkt faktorisieren und den privaten Schlüssel wiederherstellen. - Winziger Exponent ohne Padding — bei
e=3und einer kurzen Nachricht kann das Chiffrat eine perfekte Kubikzahl sein, die sich durch die ganzzahlige Kubikwurzel wiederherstellen lässt. - Gemeinsame Faktoren — wenn zwei öffentliche Schlüssel eine Primzahl gemeinsam haben, verrät der größte gemeinsame Teiler ihrer Moduli diese sofort.
Die Abwehr in der Praxis: Verwenden Sie eine geprüfte Bibliothek mit großen Schlüsseln und korrekt eingesetztem Padding (OAEP), und implementieren Sie niemals eigene Kryptografie.
Hashes knacken
Wenn Sie bei einer Challenge einen Passwort-Hash erhalten, besteht das Ziel darin, die ursprüngliche Eingabe zu ermitteln. Einen Hash können Sie nicht umkehren, aber Sie können Eingaben raten und vergleichen.
# Identify the hash type first
hashid 5f4dcc3b5aa765d61d8327deb882cf99
# Dictionary attack with hashcat (mode 0 = raw MD5)
hashcat -m 0 hash.txt rockyou.txt
# John the Ripper alternative
john --wordlist=rockyou.txt hash.txtEin wiederholbarer Workflow
Für beide Kategorien bietet sich derselbe konsistente Ablauf an:
- Beobachten — lesen Sie die Aufgabenstellung, zeigen Sie den Quelltext an und ermitteln Sie die Kodierung oder das verwendete Verfahren.
- Hypothese aufstellen — benennen Sie die wahrscheinliche Schwachstellenklasse.
- Im Kleinen testen — senden Sie einen Test-Payload und beobachten Sie die genaue Antwort.
- Ausnutzen — bauen Sie den funktionierenden Test zu einem vollständigen Payload aus, der das Flag liefert.
- Dokumentieren — halten Sie Payload und Überlegungen fest, solange sie noch frisch sind.
Dieser Ablauf hält Sie von Sackgassen fern und liefert fast nebenbei ein Writeup.
Schnelltest
Testen Sie Ihr Verständnis der Grundlagen von Web und Kryptografie.
Zusammenfassung
Sie haben die wiederkehrenden Web- und Krypto-Rätsel behandelt:
- Web: Erstellen Sie zuerst eine Übersicht und suchen Sie dann nach SQL-Injection, XSS, SSRF und Path Traversal – alle beruhen auf einem unsicheren Vertrauen in Benutzereingaben und werden durch die Trennung von Code und Daten behoben.
- Kryptografie: Unterscheiden Sie Kodierung und Verschlüsselung, brechen Sie schwache klassische und XOR-Chiffren, nutzen Sie Fehler bei RSA-Parametern aus und knacken Sie Hashes mit Wortlisten.
- Ein einziger Ablauf aus Beobachten, Hypothese aufstellen, im Kleinen testen, ausnutzen und dokumentieren funktioniert für beide.
Als Nächstes wechseln Sie zum Reverse Engineering und zur Binary-Exploitation.
Häufig gestellte Fragen
Ist die Lektion „Web- und Krypto-Challenges“ kostenlos?
Ja — der vollständige Text von „Web- und Krypto-Challenges“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Cyber Security Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Cyber Security Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Web- und Krypto-Challenges“?
Gängige Web- und Krypto-Rätsel lösen Du übst Cyber Security Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Cyber Security Academy zu starten?
Keine Vorkenntnisse erforderlich. Cyber Security Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 4.
Wie lange dauert die Lektion „Web- und Krypto-Challenges“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Cyber Security Academy-Lektion Code schreiben und ausführen?
Ja. Jede Cyber Security Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- CTF-Kategorien und Denkweise
- Web- und Krypto-Challenges
- Grundlagen von Reversing und Pwn
- Tools und Write-ups