~ / blogOnline
TS • Go • Python • Kali • Nmap • Wireshark • Burp Suite

Blog

Gedanken zu Entwicklung, Design und allem drumherum.

  • ModernAmusement Development
  • Shady Nathan Tawfik
  • Full-Stack · Data Science · ML/KI · Cybersicherheit · Design · Open Source
Kontakt aufnehmen →
Blog
Online
[v1.0.0]
35 Beiträge
10/18/2026

Die Tür neben der Eingangstür

Ein SSO-Gateway, ein sauberes Consent-Banner, eine aktuelle Lernplattform — und daneben ein Mail-Backend, das anonyme Anfragen beantwortet, ein Listen-Host aus 2010 und Appliances im 9,8er-Bereich. 48 Units, vier Wellen, 445 Befunde: was eine Flotte findet, wenn die Eingangstür nicht die Angriffsfläche ist.

10/13/2026

Ein Seitenaufruf, 42,8 MB Daten — und zwölf Security-Header, die nie ausgeliefert wurden

Eine Static-SPA mit 76.000 vorgerenderten Seiten lud bei jedem Detailaufruf 42,8 MB Rohdaten in den Browser. Parallel stellte sich heraus: Die Header-Regeln der Deployment-Konfiguration waren wirkungslos. Ein Messbericht über zwei Bugs mit derselben Wurzel — Bequemlichkeit beim Routing.

10/12/2026

Sicherheit, die davon ausgeht, dass der Angreifer die Vordertür nimmt

Eine aktuelle, gepflegte WordPress-Seite mit CDN und verwalteter Web-Application-Firewall davor. Keine ausnutzbare CVE, nichts zu ‚knacken'. Trotzdem an drei Stellen unverteidigt — weil jede Kontrolle voraussetzte, dass sich der Besucher benimmt: Der Origin war direkt erreichbar, es gab gar kein Consent-Gate, und gefälschte Mail im Namen der Marke wurde zugestellt.

10/11/2026

Die Flotte, die sich selbst widerlegt hat

55 Agenten-Einheiten, eine gemeinsame Karte und ein Bug-Bounty-Lauf, der seine drei besten Spuren selbst widerlegt hat. Ein Build-Log über Orchestrierung, Evidenz-Disziplin und die Frage, warum ein negatives Ergebnis ein Ergebnis ist.

10/11/2026

Wie ich Bewertiq gebaut habe: 10 Millionen Google-Bewertungen als Marktsignal

Ein Build-Log: fünf Scraper-Generationen, eine Pipeline von SQLite zum statischen Frontend und die Statistik, die aus Sternen und Löschhinweisen ein Entscheidungssystem macht.

10/11/2026

Was Instagram sieht, wenn du automatisierst

Ein Build-Log über einen kleinen Instagram-Automations-Stack — Worker, Queue, Pacing-Engine und Limits — und die Detektions-Recherche, die jede Schutzmaßnahme geprägt hat.

10/9/2026

Das Banner, das den Bildschirm verließ: eine Mobile-Layout-Postmortem

Ein Datenschutz-Banner sah am Desktop perfekt aus und bestand das Review. Bei 375px lag seine wichtigste Schaltfläche bei x=452 in einem 375px-Viewport — außerhalb des Bildschirms und nicht antippbar. Der Titel weigerte sich zu schrumpfen, die Wertespalte kollabierte auf null, und ein globaler Overflow-Schutz versteckte den Beweis. So hat ein Drei-Spalten-Grid das behoben.

10/9/2026

Verfolgt, ohne zu fragen: Wie das Web dich nach den Cookies erkennt

Drittanbieter-Cookies verschwinden — das Tracking nicht. Fingerprints entstehen bei jedem Seitenaufruf neu, der TLS-Handshake identifiziert dich, bevor ein Skript läuft, Client Hints öffnen einen eingefrorenen User-Agent wieder, und Zustand versteckt sich in Caches und First-Party-Subdomains. Ein Laborlauf mit frischem Profil zeigt einen Besucher, der null Cookies hinterlässt und trotzdem einzigartig ist — und was wirklich hilft.

10/8/2026

Perfekter Consent, ein Patch zu spät: Die Kanzlei mit der saubersten Datenschutz-Schicht, die ich je gemessen habe

Die Website einer deutschen Kanzlei hatte die sauberste Consent-Architektur, die ich je gemessen habe — null Cookies und null Drittanbieter-Requests vor Opt-in. Gleichzeitig war sie einen Patch hinter einem öffentlichen Unauth-XSS-Fix, lieferte null Security-Header auf jeder Seite außer dem Login, gab anonym Tokens über ihre REST-API heraus und ließ die Vertrauenskette ihrer E-Mails halbfertig. Datenschutz-Reife und Sicherheits-Reife gehören unterschiedlichen Teams.

10/7/2026

Das Consent-Gate, das nie angehängt war: Ein plattformweiter Tracking-Bypass

Eine kommunale Drupal-Multisite mit vier Domains zeigte auf Inhaltsseiten ein perfektes Consent-Setup — und auf genau den Seiten, auf denen Einwilligung am wichtigsten ist, gar keines. Das Banner war nicht kaputt: Die Consent-Bibliothek war auf System- und Rechtsrouten nie angehängt, sodass Analytics und ein Meta-Pixel vor jeder Einwilligung liefen.

10/7/2026

Consent Mode ist kein Consent-Gate

Die Website einer Digitalagentur hatte eine aktuelle Consent-Plattform, einen korrekt rendenden Banner und aktivierten Google Consent Mode — und feuerte trotzdem Analytics, Ads, Meta und LinkedIn vor jeder Einwilligung, schrieb Cookies ohne Einwilligung und ohne Secure und ließ das Session-Cookie ungeschützt. Warum Signalisieren kein Blockieren ist und wie der Fix gemessen statt diskutiert wurde.

10/7/2026

Was dein Browser über dich verrät (ohne zu fragen): Eine Live-Demo unter der Navigation

Jeder Seitenaufruf überträgt eine IP-Adresse, HTTP-Header und dutzende Geräteeigenschaften — und ihre Kombination macht Besucher ohne jedes Cookie mit über 90 Prozent Genauigkeit wiedererkennbar. Ich habe ein Transparenz-Banner für diese Website gebaut, das jedem Besucher live zeigt, was sein Browser gerade preisgegeben hat: lokal berechnet, nirgendwo gespeichert — und mit den Gründen, warum ich als Sicherheitsprofi niemanden fingerprinten will.

10/5/2026

Der zweite Durchgang: Drei blinde Flecken, die ein gehärteter WordPress-Audit übersah

Der erste Durchgang nannte die Seite gehärtet und bewertete sie mit HOCH. Der zweite, tiefere Durchgang fand eine aktiv ausgenutzte WordPress-Core-RCE, eine CORS-Reflexion mit Credentials auf der REST-API und drei installierte, aber unsichtbare Plugins — und machte daraus KRITISCH.

9/26/2026

Ein kostenpflichtiger API-Schlüssel stand in der Seite, und er funktionierte

Eine Kanzleiseite mit einem Bewertungs-Widget, das einen kostenpflichtigen Geocoding-Schlüssel in das HTML rendert. Der Befund ist schmal, trivial automatisierbar und die profitabelste Position im Bericht.

9/19/2026

Ihr Onlineshop exponiert eine öffentliche API, die Sie nicht geschrieben haben

Eine Lifestyle- und Commerce-Seite auf einer aktuellen Content-Plattform mit angehängtem Shop. Siebzehn Befunde, und die Shop-Schnittstelle war diejenige, die niemand auditierte, weil sie wie ein Feature aussah.

9/12/2026

Eine Nonce in der Seite ist kein Geheimnis, und das Plugin wusste es

Ein Business-Innovationsnetzwerk betrieb eine gepatchte Content-Plattform mit vierzehn Befunden. Der interessante war eine aktivierte Funktion, die ihre eigenen Request-Token im Seitenquelltext veröffentlichte.

9/5/2026

Moderne Frontend, alte Backoffice: eine hybride Landschaft auditieren

Eine Petitionsplattform betrieb ein modernes Framework auf der Hauptdomain und ein Legacy-Content-System hinter einem nackten Server ohne Firewall. Die moderne Seite war vorbildlich. Die Legacy-Seite definierte das Risiko.

8/29/2026

Was ein Ransomware-Vorfall über die Woche davor lehrt

Ein öffentlicher Netzverbund wurde rund eine Woche exfiltriert, bevor es jemand bemerkte. Diese Analyse handelt von Kontrollen, die diese Verweildauer verkürzt hätten, nicht vom Angreifer.

8/22/2026

Die API-Dokumentation war öffentlich, und sie war die beste Karte, die man sich wünschen kann

Eine mit einem automatisierten Framework gebaute Anwendung lieferte interaktive Dokumentation und ein maschinenlesbares Schema an einem bekannten Pfad. Beides war standardmäßig aktiviert und keines hinter einem Login.

8/15/2026

Wenn TLS-Durchsetzung optional ist, werden Downgrades langweilig

Eine Universitäts--Content-Plattform lieferte auf manchen Hosts gemischte Protokollversionen. Kein Cipher war schwach, kein Zertifikat abgelaufen, und die Transportschicht fiel trotzdem durch die Bewertung.

8/8/2026

Eine gepatchte Landschaft mit sechs Befunden ohne Exploit: Berichtsdisziplin

Eine Restaurantseite hinter einer Web Application Firewall. Alle Plugins aktuell, alle bekannten Exploits scheiterten, und der Bericht hatte trotzdem sechs handlungsrelevante Befunde.

8/1/2026

Ein Befund, maximale Wirkung: eine zu permissive Cross-Origin-Policy

Eine kommunale Content-Plattform auf modernem Stack ergab einen einzigen Befund höchster Schwere. Er brauchte keine Versionsprüfung und keinen Exploit; der Browser hat die Arbeit erledigt.

7/25/2026

Eine Plattform für interne Kommunikation, im Internet exponiert

Eine öffentliche Kooperations- und Beratungsplattform betrieb ein Content-System mit drei niedrigen Befunden. Die Lehre steckte darin, was ein niedriger Befund Ihnen nicht sagt.

7/18/2026

Error-Tracking-Telemetrie beschreibt Ihre Architektur für jeden mit einem Browser

Ein Plattformanbieter mit Java-Backend hinter zwei Reverse-Proxies und modernem Front End. Der interessante Befund war keine Schwachstelle, sondern ein Inventar: Error Tracking offenbarte die interne Struktur.

7/11/2026

Die Legacy-Instanz neben der modernen ist die eigentliche Landschaft

Eine Organisation betrieb zwei Generationen einer Content-Plattform gleichzeitig. Die moderne war aktuell; die Legacy-Instanz definierte das Risiko, einschliesslich einer Client-Bibliothek jenseits des Supports.

7/4/2026

Statische Seite, Serverless-Funktionen, zwölf Befunde

Eine Site-Builder-Plattform mit Content Delivery Network davor und Funktionen dahinter. Die statische Ebene war sauber; die Funktionsebene und die Mail-Konfiguration waren es nicht.

6/27/2026

Ein Plugin kann aktuell sein und trotzdem Datensätze an jeden ausgeben

Ein vollständig gepatchtes Content-Management-System trug ein Plugin mit aktuellen Releases und zwölf Befunden. Das Muster war Autorisierung: Routen, die antworteten, bevor der Berechtigungs-Callback lief.

6/20/2026

Fehlerseiten sind ein unbeabsichtigter Endpunkt für API-Dokumentation

In einer gemischten Umgebung tauchten dieselben drei Lecks immer wieder auf: Stack Traces, Framework-Banner und absolute Dateisystempfade. Jedes davon kartiert die Internas kostenlos.

6/13/2026

Das Buchungsplugin ist das Produkt, und das Produkt ist eine Verwaltungsoberfläche

Ein Weiterbildungsträger mit Buchungsplugin legte mit dem Plugin dessen komplette Verwaltungsoberfläche frei: Exporte, Teilnehmerdaten, Datei-Uploads und ein unauthentifizierter Cron.

6/6/2026

Eine Row-Level-Security-Policy ist eine Grenze, die man clientseitig testen muss

Eine plattformgenerierte Anwendung speicherte jede Mandantentabelle hinter Row Level Security. Die Policy war auf dem Papier korrekt und in der Praxis umgehbar, weil der Client einen Schlüssel hielt, dem die Policy zu sehr vertraute.

5/30/2026

Zwanzig Befunde, eine Plattform: Wie Volumen die Behebungsreihenfolge verändert

Ein Industrielieferant mit grosser Content-Oberfläche ergab zwanzig Befunde in sieben Kategorien. Der Wert lag in der Reihenfolge, nicht in der Anzahl.

5/23/2026

Eine Single Page Application liefert ihre Routenkarte selbst aus

Eine moderne Framework-Anwendung mit fast keiner serverseitigen Angriffsfläche legte ihre Verwaltungsoberfläche trotzdem offen, weil die Routentabelle in das Client-Bundle kompiliert wird.

5/16/2026

Acht Angriffsvektoren, null Befunde: Wie eine gehärtete Single Page Application aussieht

Ein Negativbefund ist ein Ergebnis. Dieser dokumentiert, warum acht Standardvektoren gegen eine statisch ausgelieferte Anwendung hinter einer Edge-Plattform scheiterten.

5/9/2026

WordPress-Benutzer-Enumeration ist nicht der Befund, sie ist der Multiplikator

Eine Steuerberatungskanzlei legte jeden Konto-Slug über ihre öffentliche REST-API offen, lieferte keinerlei Security-Header und liess das Login ohne Rate-Limit laufen.

5/2/2026

Ein Legacy-Kommunal-CMS mit perfekter Transportverschlüsselung und ohne Clickjacking-Schutz

HSTS war auf einem deutschen Kommunalportal einwandfrei. Ein fehlender Header erlaubte Framing weiterhin, und die CSP erlaubte Skript-Injektion.