Letzte Tage wurde ich von einem Twitter-User auf die Tutorial-Plattform des Youtubers Tomary aufmerksam gemacht. Tomary stellt unter https://tomary.learnworlds.com/ seine Online-Kurse zum Thema Adobe Premiere Pro kostenpflichtig zur Verfügung. Lernworlds ist eine Plattform, welche den Verkauf von Online-Kursen ermöglicht. In diesem Beitrag solls um ein kleines Missgeschick seitens der Entwickler von Learnworlds gehen.
Ich wills aber gratis
Nun ja, zunächst muss man sich mal die API etwas näher anschauen. So ein “Tutorial-Blog” ist in mehrere Kurse aufgeteilt. Jeder Kurs beinhaltet mehrere Beiträge. In dem Fall hier sind es Videos. Hinter dem Frontend steckt eine inoffizielle API, über welche man die Kurse abrufen kann. Im Folgenden verwende ich die Inhalte der Webseite https://www.planetdojo.de/ des Youtubers Marius Angeschrien, welcher ebenfalls seine Kurse über Learnworlds vermarktet.
GET /api/products_all
Wie man sehen kann, erhält man eine Auflistung aller Kurse. Als nächstes möchten wir die Inhalte der Kurse abrufen. Dazu muss für jeden Kurs ein weiterer Request abgesetzt werden.
GET /api/course/after-effects-level-0-die-basics?contents
Im Response befindet sich eine Auflistung aller Videos aus dem entsprechenden Kurs. Nun kommt man der Video-Datei schon etwas näher.
SourceId
als Schlüssel zum Erfolg
Wirft man einen Blick auf die Attribute des JSON-Response, dann sieht man dass zu jedem Video eine SourceId
übermittelt wird.
Diese SourceId dient als Referenz auf das bei einem Drittanbieter gespeicherte Video. In diesem Fall wird das Video bei Wistia gehostet. Erkennbar über das Attribut Type
.
Nur noch das Ticket einlösen
Wistia bietet ebenfalls eine API um Video-Referenzen aufzulösen. Nach einer kurzen Suche war der Endpunkt gefunden
https://fast.wistia.com/embed/medias/lqoar9w89u.json
Im Response befinden sich mehrere Links zu Videodateien. Bei den URLs mit der Endung .bin
handelt es sich um klassische MP4-Videos in mehreren Qualitätsstufen.
Hier ein Video aus dem kostenpflichtigen Kurs Durchstarten mit Premiere Pro
des Youtubers Tomary:
https://embed-ssl.wistia.com/deliveries/27c3b50d6c4bbec47978292b7b66aa4d.bin
Security by design
Für Videoproduzent, welche auf dieser Plattform ihre Kurse vermarkten wollen, ist diese Lücke natürlich nicht so toll. Viel gravierender ist allerdings die Tatsache, dass die Plattform scheinbar für Exklusive Inhalte genutzt wird, welche nicht an die Öffentlichkeit gelangen sollten.
Die Plattform selbst wirbt mit dem Slogan “Security by design”. Wenn denen die Sicherheit wirklich wichtig ist, dann sollten die sich ja über einen Report freuen. Oder?
Let’s Report
Die Lücke wurde von mir am 07.01.2020 gemeldet und noch am gleichen Tag behoben. Immerhin eine vorbildliche Reaktionszeit.
In wie fern hier nur “eine Handvoll” Learnworlds-Webseiten betroffen waren, kann ich nicht beurteilen. Ich habe insgesamt 14 per Google auffindbare Webseiten überprüft, wovon alle für diese Lücke anfällig waren.
Bounty: –