Sicherheitslücke bei Badische-Zeitung.de (Update)

Vor genau einem halben Jahr wies ich die Badische Zeitung auf eine Sicherheitslücke in der Kommentarfunktion auf Webseite hin. Seit dem wurde weder die Lücke geschlossen, noch bekam ich eine Antwort. Vor einigen Tagen kontaktierte ich erneut die Badische Zeitung und kündigte eine Veröffentlichung der Lücke an, wenn diese nicht geschlossen würde. Wieder keine Antwort und das Problem besteht auch weiterhin. Daher veröffentliche ich nun die Lücke.

Kern des Problems ist die Kommentarfunktion. Anders als beispielsweise bei den allermeisten Blogs, lässt die Badische Zeitung jegliche HTML-Befehle zu und beschränkt diese nicht auf die Befehle, die zur Textformatierung geeignet sind. Das ist auf den ersten Blick ein netter Service, da jeder so seinen Kommentar formatieren kann. Doch damit lässt sich noch viel mehr anstellen.

So lassen sich beispielsweise Nachrichten ausgeben und Kommentare in fremdem Namen abgeben. (Ich habe dabei extra eine der ersten Nachrichten genommen, es funktioniert genauso auch bei aktuellen Artikeln.) Das Verändern des Layouts der Webseite wäre jedoch noch eine der weniger folgenreichen Manipulationen. Hingegen lässt sich mit der Verwendung von Javascript-Code einiges Schwerwiegendere anstellen. Da auch dessen Verwendung nicht unterbunden wird, wird der Code als Teil der Kommentare beim Aufruf des entsprechenden Artikels ausgeführt. Für den Browser des jeweiligen Nutzers ist dieser Code vertrauenswürdig, da er ja direkt von Badische-Zeitung.de kommt. Dies kann von Angreifern ausgenutzt werden, indem bei Aufrufen des jeweiligen Artikels automatisch dann Schadcode nachgeladen wird.

Durch diese Lücke wird also Cross-Site Scripting Tür und Tor geöffnet. Das Problem ließe sich jedoch sehr leicht lösen, indem einfach nicht mehr alle HTML-Tags zugelassen werden, sondern nur noch einige wenige, die für die Textformatierung erforderlich sind. Hoffentlich reagiert die Badische Zeitung nun zeitnah und schließt die Lücke.

Update:
Mittlerweile hat die BZ die Lücke geschlossen. Alle eckigen Klammern („<“ oder „>“) werden nun nicht mehr zugelassen. Bei der Eingabe werden die eckigen Klammern anhängender Text gelöscht. So wird beispielsweise die Eingabe von „<p“ nicht verarbeitet. Im ersten Moment dachte ich, das das Problem nicht vollständig gelöst sei, da bei Eingabe von Leerzeichen nach der Klammer („< p“) die Eingabe verarbeitet wird. Wird nun jedoch auch noch die schließende Klammer angefügt („< p >“) wird der Befehl nicht mehr verarbeitet. Es wird also Text der direkt auf „<“ folgt und Text der zwischen „<“ und „>“ steht samt den Klammern nicht verarbeitet.

Die BZ hat diese Sicherheitslücke also nun endlich geschlossen.