Drinks of the World entfernt XSS-Lücke

Der Webshop von Drinks of the World war anfällig für Cross-Site-Scripting. Die unsichere Komponente wurde bei einem Redesign entfernt.

XSS-Lücken gibt es nach wie vor wie Sand am Meer. Im Februar habe ich eine in der Filterfunktion von «beerworld.ch» gefunden. Erst nach mehreren Monaten konnte die Lücke eliminiert werden. Grund dafür war unter anderem, dass die Verantwortlichen keinen Zugriff auf den Quellcode der Seite hatten und ein proprietäres WordPress Plugin zum Einsatz kam, das vermutlich nicht mehr unterstützt wird. Eine neue Webseite war für ende April geplant, der Termin wurde aber offenbar um einige Wochen verschoben. Ursprünglich wurde mir verpsrochen, das zwischenzeitlich ein Workaround implementiert werden soll, schlussendlich wurde aber doch nichts mehr an der «alten» Webseite geändert.

Der folgende Link konnte verwendet werden, um beliebigen JavaScript Code über die Seite auszuführen:

https://www.beerworld.ch/produktfilter/?wpml=de&search-id=1111&3=7&4=%3Cscript%3Ealert(String.fromCharCode(120,%20115,%20115));%3C/script%3E

Beim verwundbaren Parameter handelte es sich um die Filterkategorie «Land». Inzwischen wurde nicht nur das Plugin ersetzt, sodern auch mod_Security, eine Web application firewall für den Apache Webserver, aktiviert. Ich habe vorgeschlagen, für die neu geplante Seite eine Content Security Policy einzuführen. Aber auch WordPress ist in der Pflicht, im eigenen Quellcode aufzuräumen:

Eine weitere Meldung über dubiose SQL-Fehlermeldungen wurde bislang ignoriert und die Seiten sind weiterhin zugänglich:

  • http://app.beerworld.ch/dotw/survey_ok.php
  • http://app.beerworld.ch/dotw/BierBewertung.php
  • http://app.beerworld.ch/dotw/BierBewertung.php?prodID=test