Sicherheitslücke bei TikTok ermöglicht Übernahme fremder Accounts
Freddy Greve •
5. Mai 2021 • 3 min Lesezeit
Bytedance, die Firma hinter TikTok, versucht durch regelmäßige Updates und neue Features die App kontinuierlich zu verbessern. So wurde Anfang des Jahres eine neue Funktion getestet, die es Creatorn erlaubte, einen Link zu einer Website in ihrem Profil einzubinden.
Auch bei mir wurde diese Funktion Mitte März ausgerollt. Also verlinkte ich meine Website auf meinem TikTok-Profil. Desweiteren habe ich ein Programm geschrieben, um die durch TikTok generierten Aufrufe der Website zu analysieren.
TikTok öffnet, ähnlich wie Facebook, Links nicht in einer externen Browser-App wie Safari oder Chrome, sonder in einem integrierten In-App-Browser. Dadurch ist es für Website-Betreiber möglich, diese Aufrufe anhand des User-Agent zu identifizieren. Der User-Agent wird als Teil des Headers (Kopfbereich einer Web-Anfrage an einen Server) bei jeder Anfrage an den Webserver übermittelt. In diesem Header können aber auch weitere Informationen übergeben werden. Beispielsweise Formulardaten oder Cookies. Bei der Analyse des vom TikTok In-App-Browser übermittelten Headers fiel mir auf, dass neben des User-Agents weitere Informationen geschickt wurden. Bei diesen Daten handelte es sich unter anderem um die Sitzunginformationen des angemeldeten TikTok-Nutzers.
Bei jedem Login in App oder auf einer Website wird für den angemeldeten Nutzer ein Schlüssel generiert, der in Form eines Cookies im Browser gespeichert wird. Mit diesem Schlüssel identifiziert sich der Nutzer beim Server. Wer über diesen Schlüssel verfügt, hat also vollen Zugriff auf den Account.
Mir war es also möglich, die Schlüssel des Nutzers abzugreifen, der auf den Link in meine Profil klickte. Als nächstes habe ich analysiert, wie die App mit dem Server kommuniziert. Dabei kommen API-Schnittstellen zum Einsatz. Es galt also, die API-Schnittstellen von TikTok herauszufinden und die Kommunikation mit den gestohlenen Sitzungsinformationen der Nutzer nachzubauen.
Um keinen Nutzern zu schaden, erstellte ich Fake-Profile und sperrte meine Website für andere Nutzer.
Durch das Reverse Engeneering der TikTok App ist es mir gelungen, verschiedene API-Schnittstellen ausfindig zu machen und somit fremde Accounts zu übernehmen. Ich war in der Lage Profile zu verändern, Videos zu veröffentlichen, Videos zu löschen und noch vieles mehr.
In diesem Video demonstriere ich harmlose API-Anfragen mit einem Testaccount. In diesem Beispiel lese ich die Nutzerinformationen aus und ändere Username und Biografie.
Am 25.03. meldete ich die Sicherheitslücke bei TikTok Deutschland in Berlin. Diese leiteten meine Meldung weiter an das Security-Team in den USA. Auch das Security-Team erstellte Fake-Accounts und teste damit die von mir geschriebenen Programme. Das Security-Team konnte das Problem reproduzieren. Daher haben sie mich darum gebeten, die Sicherheitslücke erst 90 Tage nach meiner Erstmeldung an TikTok zu veröffentlichen. Seit dem 15.04. ist die Problem behoben.
Ob und in welchem Umfang diese Lücke ausgenutzt wurde, kann ich nicht sagen. Wer auf Nummer sicher gehen will, sollte unbedingt darauf achten, dass die neuste TikTok-Version installiert ist.