Hallo und willkommen zurück! In diesem Beitrag geht es um eine persistent XSS Sicherheitslücke auf der Website streamable.com. Ich bin selber regelmäßiger Nutzer dieses Dienstes gewesen, sodass ich mir aus Spaß und Neugier mal ein oder zwei Stunden dafür Zeit genommen hatte.

Was ist streamable.com?

streamable.com ist ein Online Dienst, welcher den schnellen Upload und das Streamen von Videos ohne Benutzeraccount ermöglicht. Schnell, „anonym“ und einfach gestaltet, entwickelte streamable.com sich zu einer der weltweit führenden Websites, welche diesen Markt abdecken.

Die Website hat mit mehreren Millionen Besuchern jeden Monat aktuell (07.04.2021) den Alexa Global Rank 1972 inne. Ich bin mir sicher, dass einige von euch diese Website bereits einmal genutzt haben oder immer noch regelmäßig nutzen.

Die Lücke

Bei der Sicherheitslücke handelt es sich um eine persistent XSS Lücke, welche relativ einfach zu finden war. Streamable erlaubt das Bearbeiten von Videos nach dem Upload. Dazu zählt auch der Videotitel. Ich habe den Videotitel einmal geändert und habe folgenden PUT Request erhalten.

Request URI: https://ajax.streamable.com/videos/amziux?purge=
Request Parameter: {"title":"Das ist der Titel"}

Danach habe ich bemerkt, dass der Videotitel in einer JavaScript-Datei gespeichert wird.  Ich habe den Parameter title also angepasst und mit einem XSS-Payload versehen. Danach lautete der Request folgendermaßen.

Request URL: https://ajax.streamable.com/videos/amziux?purge= 
Request Parameter: {"title":"</script><img src=X onerror=alert('XSS')><!--"}

Der Payload macht nichts anderes, als dass er das Script unterbricht und versucht ein Bild darzustellen. Das funktioniert natürlich gewolltermaßen nicht, da keine gültige URL zum Bild angegeben wurde und mit dem JavaScript Event onerror habe ich eine Alert-Nachricht getriggert.

Anschließend habe ich den restlichen Code auskommentiert, sodass kein nicht ausgeführter Source Code auf der Website angezeigt wird. Sobald man sich das Video über die URL anschauen wollte, wurde dieser Alert getriggert und der Rest der Website (inklusive des Videos) wurde nicht angezeigt.

Ganz unten im nächsten Bild sieht man noch das Error Icon von dem nicht vorhandenen Bild. Ich habe diese Sicherheitslücke am 26.03.2021 gemeldet und noch am selben Tag wurde dieser Report an die IT weitergeleitet. Dieser erste Kontakt verlief sehr positiv und zufriedenstellend.

Am 07.04.2021, etwas mehr als eine Woche später, wurde diese Lücke durch Fachkräfte in der IT geschlossen. Ich habe dies selbstverständlich erneut überprüft und diverse andere Payloads, unter anderem auch Polyglot XSS Payloads ausprobiert und konnte dabei keine Sicherheitslücke in dieser Funktion mehr feststellen. Daher ist diese Sache für mich nun erledigt und der Blogbeitrag freigegeben!

Ich hoffe, dir hat dieser Beitrag gefallen – dein Maurice.

Möchtest du immer aktuell bleiben und automatisch über neue Beiträge informiert werden? Dann melde dich doch für meinen kostenfreien Newsletter an!

DSGVO (Pflichtfeld) *

Categorized in: