Empfohlener Track
Bits n Bites: Deep Dive
Eine laufende Geldwäscheoperation, versteckt in einer Liefer-App: Teilnehmende steigen systematisch in den Rängen auf und decken auf, wer hinter den verdächtigen Restaurants steht.
Bits n Bites führt Teilnehmende in die Bits-n-Bites-Plattform: eine elegante Liefer-App, die Sine Nomine für eine Geldwäschefront hält. Die Tarnung ist ein normales Kundenkonto. Die Mission: das Finanznetzwerk von innen kartieren. Dafür werden Broken-Access-Control-Schwachstellen durchbrochen, injizierbare Endpunkte ausgenutzt, Authentifizierungsabläufe umgangen und Transaktionsmuster nachverfolgt, die keine legitime Liefer-App jemals erzeugen sollte.
Warum es in der echten Welt zählt
Das sind keine theoretischen Schwachstellen. 2017 verlor Equifax 147 Millionen Datensätze, weil ein einzelnes Web-Framework nicht gepatcht wurde. 2023 kompromittierte eine SQL-Injection-Schwachstelle in MOVEit Daten bei mehr als 2.000 Organisationen. 2012 ermöglichte ein Mass-Assignment-Bug bei GitHub einem Angreifer, seinen eigenen SSH-Schlüssel zu jedem Repository hinzuzufügen. 2016 legten fehlerhafte Zugriffskontrollen bei Uber 57 Millionen Nutzerdatensätze offen. Bits n Bites kombiniert all diese Schwachstellenklassen in einem einzigen Ziel, denn genau so scheitern echte Anwendungen: nicht durch einen einzelnen Fehler, sondern durch eine Kette von Fehlern. Der Track beginnt so, wie ein echter Angreifer beginnen würde: mit der Auswertung geleakter Daten aus früheren Datenpannen. Zu wissen, wie man diese Schwächen erkennt und verbindet, ist der Unterschied zwischen sicher ausgelieferter Software und dem nächsten Incident Report.
Was Teilnehmende analysieren
Das Ziel ist Bits n Bites, eine mobile Liefer-App, deren API-Endpunkte fast alles tun, außer Nutzerdaten zu schützen. Bevor die App selbst untersucht wird, wird ein geleakter Equifax-ähnlicher Datensatz in Azure Table Storage abgefragt. Unterschiedliche Login-Antworten helfen anschließend dabei, aktive Konten zu identifizieren. Von dort reißt die Angriffskette nicht mehr ab.
Boolean-basierte Blind-SQL-Injection im Restaurant-Suchendpunkt ermöglicht die Extraktion von MFA-IDs, die die UI nie anzeigt. Insecure Direct Object References geben TOTP-Secrets anderer Nutzer preis. Eine Mass-Assignment-Schwachstelle erlaubt die Übernahme von MFA-Konfigurationen, die das Frontend absichtlich versteckt. Clientseitiges JavaScript verrät hartcodierte AES-Schlüssel. Stored XSS im Fahrer-Händler-Chat stiehlt Live-Authentifizierungstokens. Und eine XML-Exportfunktion, anfällig für XXE, wird zu einem Server-Side-Request-Forgery-Werkzeug, das das interne Finanzledger erreicht.
Jede Schwachstelle führt zur nächsten. Statt isolierter Übungen entsteht über 13 Challenges und 5 Phasen hinweg eine einzige, durchgehende Angriffskette: von einem geleakten Datensatz bis zum internen Ledger, das die Geldwäscheoperation beweist.
Challenges
Mobile Anwendungen können dieselben Schwachstellen haben
Verkette reale Schwachstellen über fünf Phasen hinweg, von Equifax-ähnlicher Datenaufklärung bis zu einer vollständigen XXE-zu-SSRF-Exfiltrationskette. Jede Technik lässt sich einem dokumentierten Sicherheitsvorfall zuordnen.
Der Angriff beginnt, bevor die App selbst untersucht wird. Ein geleakter Datensatz in Azure Table Storage wird mit OData-Filtern abgefragt und anschließend mit dem Login-Formular der Plattform abgeglichen, das durch unterschiedliche Fehlermeldungen die Existenz von Konten verrät. So machen echte Angreifer Datenpannen zu Waffen.
Der Restaurant-Suchendpunkt liefert Ergebnisse oder eine leere Liste zurück, abhängig von einer injizierten booleschen Bedingung. Keine Fehlermeldungen, keine Timing-Tricks. Nur wahr oder falsch, Bit für Bit, bis MFA-IDs extrahiert sind, die die API verbergen sollte. Dasselbe Muster stand hinter dem MOVEit-Vorfall, der 2023 mehr als 2.000 Organisationen kompromittierte.
Das Frontend versteckt das MFA-Ownership-Feld, aber die API akzeptiert es. Ein präparierter JSON-Body mit der E-Mail einer anderen Person und einer eigenen MFA-Settings-ID reicht aus, damit die Plattform deren zweiten Faktor neu zuweist. 2012 ermöglichte dieselbe Schwachstellenklasse bei GitHub einem Angreifer, seinen SSH-Schlüssel zu jedem Repository hinzuzufügen.
Der Fahrer-Händler-Chat blockiert exakte script-Tags, aber keine Varianten mit anderer Groß- und Kleinschreibung. Eine Stored-XSS-Payload stiehlt das Authentifizierungstoken des Händlers aus localStorage. Dieses Token ermöglicht anschließend den Zugriff auf das Händlerportal, wo eine XXE-Schwachstelle in der XML-Exportfunktion zu einem SSRF-Werkzeug wird, das das interne Finanzledger erreicht.
Eine einzige geänderte ID im MFA-Settings-Endpunkt reicht aus, um das TOTP-Secret eines anderen Nutzers zu lesen. Anschließend wird ein hartcodierter AES-Schlüssel im clientseitigen JavaScript genutzt, um die E-Mail des Fahrers aus Bestellbelegen zu entschlüsseln. Uber verlor 2016 durch fehlerhafte Zugriffskontrollen wie diese 57 Millionen Datensätze.

Angriffskette
Ein geleakter Equifax-ähnlicher Datensatz in Azure Table Storage wird mit OData-Filtern abgefragt. Die gefundenen Daten werden anschließend gegen das Login-Formular der Plattform getestet.
Ein Konto wird erstellt, die Profil-API untersucht und versteckte Einstellungen werden identifiziert.
Konfigurationen werden über Mass-Assignment-Schwachstellen übernommen, Authentifizierungscodes auf ein kontrolliertes Konto umgeleitet und so die vollständige Kontrolle über das Konto einer verdächtigen Person hergestellt.
Durch die Verkettung von SQL Injection erfolgt der Wechsel vom Kunden zum Fahrer. IDOR legt dessen TOTP-Secret offen, AES-Entschlüsselung identifizierende Informationen über den Fahrer. Anschließend werden TOTP-Codes erzeugt und das Passwort zurückgesetzt.
Eine XXE-Schwachstelle in der XML-Exportfunktion des Händlers wird genutzt, um Server-Side Request Forgery gegen das interne Ledger auszulösen.
Abdeckung der OWASP Top 10 (2025)
- Insecure Direct Object References ermöglichen Zugriff auf MFA-Einstellungen anderer Nutzer.
- Missbrauche Mass-Assignment-Schwachstellen, um Account-Ownership-Felder zu überschreiben, die die API nie hätte offenlegen sollen.
- Server-Side Request Forgery über XML External Entity Injection ermöglicht den Zugriff auf interne Dienste.
- Stelle vermeintlich gelöschte Nachrichten aus dem browserseitigen localStorage wieder her, den die Plattform nicht geleert hat, und finde so den Namen der Bank hinter der Geldwäscheoperation.
- Stelle hartcodierte Verschlüsselungsschlüssel aus clientseitigem JavaScript wieder her und nutze sie, um geschützte Fahrer-Metadaten zu entschlüsseln.
- Führe Boolean-basierte Blind-SQL-Injection gegen den Restaurant-Suchendpunkt aus. Ergebnisse erscheinen oder verschwinden abhängig von injizierten Bedingungen und leaken Daten, die die UI verbergen sollte.
- Umgehe schwache Sanitizing-Filter mit Payloads in anderer Groß- und Kleinschreibung, um Stored XSS über den Fahrer-Händler-Chat auszuliefern und Authentifizierungstokens in Echtzeit zu stehlen.
- XXE-Payloads verwandeln eine XML-Exportfunktion in ein Gateway zu internen Finanzledgern.
- Gültige Konten werden enumeriert, indem unterschiedliche Reaktionen des Login-Flows auf registrierte und nicht registrierte Nutzer beobachtet werden.
- MFA-Abläufe werden übernommen, indem Second-Factor-Challenges auf ein vom Angreifer kontrolliertes Konto umgeleitet und die abgefangenen Codes anschließend zum Zurücksetzen des Zielpassworts genutzt werden.
- Ein generischer Update-Endpunkt hängt gepostete Objekte blind an, ohne Ownership zu prüfen, und ermöglicht dadurch eine vollständige MFA-Übernahme mit einer einzigen präparierten Anfrage.