Thumbnail

Hallo und willkommen zurück! Heute gibt es wieder anderen Content! Es geht um eine persistent XSS auf der Website streamable.com.

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. 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 dem Video) 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.

Heute (07.04.2021) wurde diese Lücke geschlossen. Ich habe dies noch kurz ü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, euch hat dieser Beitrag gefallen! Noch eine kurze Ankündigung. Dieser Beitrag ist der letzte, welcher unter dem aktuellen Website-Design erscheinen wird. Zum nächsten Beitrag erscheint diese Website in komplett neuem Glanz – euer Maurice!

Hallo! Ich bin Maurice. Ich komme aus dem wunderschönen Magdeburg und wenn ich nicht gerade in CS:GO verzweifle, vertreibe ich mir meine Zeit mit meinem Blog und Web Design/Web Development.

Leave a Reply

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.