URL-Redirects – eine gut gemeinte Schwachstelle

Sie setzen Newsletter ein und verlinken von dort auf Drittseiten? Sie zählen die ausgehenden Clicks von Ihrer Webseite? Dann sind Sie gefährdet, für die sog. „die „URL-Redirect“ /“Open-Redirect“-Schwachstelle.

Die URL Redirect Schwachstelle von Webseiten kann ein Angreifer dazu ausnutzen, um den Besucher einer Webseite auf seine eigene und nicht vertrauenswürdige Webseite weiterzuleiten. Diese Schwachstelle ist bekannt und wird über unsichere Skripte bei der Entwicklung einer Webseite verursacht. Der Angreifer kann diese Schwachstelle über die unsicheren Skripte der Webentwickler daher nutzen, ohne selbst die Webseite zu hacken.

Der Angriff wird so ausgeführt, dass dem Internet-Benutzer ein Weblink angeboten wird, der aus zwei Teilen besteht. Im ersten Teil sieht der Internetnutzer einen vertrauten und bekannten Domain-Namen und im zweiten Teil des Links die eigentliche Weiterleitung auf die nicht vertrauenswürdige Webseite des Angreifers. Dabei nutzt der Angreifer als Schwachstelle das Vertrauen des Internetnutzers in die Wiedererkennung des bekannten Teils aus und verleitet den User damit den Link anzuklicken. Den zweiten Teil des Links mit dem schädlichen Teil und der URL der Webseite des Angreifers nimmt der Internetnutzer dann nicht mehr wahr. Technisch läuft die Weiterleitung auf die nicht vertrauenswürdige Seite des Angreifers für den Internetnutzer vollkommen transparent ab, womit auch technikaffine User diese Art der Weiterleitung häufig nicht bemerken.

Der Angreifer muss die so manipulierten Links nur noch den Suchmaschinen bekannt machen. Dies geschieht dadurch, dass die neuen Links auf Drittseiten platziert werden. Die Suchmaschinen nehmen die URLs mit in den Index, der beschreibende Text wird dabei von der missbräuchlichen Zielseite dargestellt. Damit werden die Themen des Fake-Shops oder eines anderen missbräuchlichen Dienstes über die missbrauchte Domäne bekannt gemacht. Dies kann man über Programme, die ermitteln welche Links auf die eigene Seite zeigen, selbst sehr gut nachvollziehen wenn man betroffen ist.

Welche Formen des URL-Redirects gibt es?

Die als open Redirect bekannte Schwachstelle, bei der Weiterleitung von Webseiten-Besuchern auf eine vom Angreifer manipulierte Seite erfolgt, basiert im Grunde darauf, dass die Weiterleitung parametrisiert ist und damit erst zur Laufzeit die konkrete Weiterleitung aufgelöst wird. Ein einfaches Beispiel eines php-Skripts könnte dabei so aussehen:

$jumpurl=$_GET[‘link’];

header("location: ".$jumpurl);

Da der Paramter “link” nicht überprüft wird kann der Angreifer etwa über einen manipulierten Link wie: https://known-good.com?link=http://unknown-bad.com auf seine Angriffs-Webseite weiterleiten. Diesen Link kann der Angreifer per Email an den Nutzer der Internetseite versenden oder über Treffer aus Suchmaschinen platzieren. Wird der Link angeklickt landet der Webseiten-Besucher automatisch auf der Seite des Angreifers.

Auch das folgende Beispiel zeigt ein komplexeres Beispiel für die URL Redirect Schwachstelle:

$domain=$_GET[‘domain’];

if ($_POST['checkid'] == 'Login' && $_POST['nickname'] && $_POST['password']) {

if ($_POST['autologin'] == 'true')                       

       header ("location: ".$domain);}

Das Beispiel zeigt eine Login Prozedur, die nach erfolgtem Login eine Weiterleitung auf die in $domain gespeicherte Webseite ausführt. Dies wird häufig aus Komfortgründen so ausgeführt, da der Internet-Nutzer auf die Seite weitergeleitet werden soll, die er vor dem Login angesteuert hatte. Da in diesem Beispiel der Parameter ‘domain‘ nicht überprüft wird, kann der Angreifer die daraus resultierende Redirect Schwachstelle der Webseite ausnutzen. Im Beispiel geschieht die Weiterleitung nach dem Login auf der bekannten Seite. Dies erreicht der Angreifer indem er etwa folgenden Link erstellt:

https://known-good.com?checkid=Login&…&domain=http://unknown-bad.com

Klickt der User den Link an, wird er zunächst auf die Login Page der bekannten Webseite gelenkt. Nach erfolgtem Login wird der User automatisch auf die manipulierte Seite des Angreifers http://unknonw-bad.com weitergeleitet. Selbst für technikaffine User ist es schwierig diese Weiterleitung festzustellen.

Häufige Angriffspunkte sind Redirect-Seiten, die zählen sollen, wie oft ein ausgehender Link verwendet wird. Z.B. wurde der folgende Linkmechanismus bei einer Zeitung gefunden:

...zeitung.com/redirect.asp?url=[ZIELURL]
Eine Zeitung verlinkt plötzlich mit 12 000 Links auf ein missbräuchliches Angebot

Es gibt auch Trackingcodes in der Werbebranche (Affiliate Marketing), die Werbepartnern erlauben auf Provisionsbasis zu einer Drittseite zu verlinken. Dort sind beispielsweise folgende Links im Einsatz:

tracking.xxx.de/?deepurl=[ZIELURL]

Andere häufige Parameter vor denen man sich in acht nehmen sollte sind url=, link=, redirect=. Tauchen diese in Links auf der eigenen Seite auf und können die Ziel-Domänen beliebig verändert werden ist Handeln notwendig, denn Angreifer scannen ständig Webseiten nach solchen Mustern und nutzen sie für ihre Zwecke.

Was kann ich gegen diese Form der Manipulation tun?

Beim URL Redirect handelt es sich um eine Schwachstelle der Webseite, die bereits bei der Erstellung der Webseite durch unsichere Skripte entsteht. Die Skripte können durch den Webseitenbetreiber programmiert sein oder sie kommen durch verwendete Plugins ins System. So war beispielsweise ein populäres WordPress Newsletter-Plugin betroffen, das offenbar zählen wollte, wie oft Links im Newsletter geklicked werden. Ebenso betroffen war das WordPress und Joomla Plugin AcyMailing und Noptin.

Die Schwachstelle kommt dadurch zustande, dass Parameter, die über einen Webseiten-Link übergeben werden, nicht auf deren Gültigkeit überprüft werden. Die Folge ist eine ungewollte und für den Internet-Nutzer evtl. riskante Weiterleitung auf eine manipulierte Seite des Angreifers. Hier ist der Betreiber der Internetseite gefragt, diese gegen URL Redirects zu härten, also widerstandsfähig zu halten. Die URL Redirect Schwachstelle kann beispielsweise vermieden werden, in dem die URLs zur Weiterleitung hart in die Skripte geschrieben werden. Der Betreiber der Webseite weiß ja häufig, wohin er verlinken möchte. Ist die Auflösung der Weiterleitung erst zur Laufzeit des Skripts möglich, muss entsprechend überprüft werden, ob der parametrisierte Link auch auf die Domain weiterleitet, die der Webseiten-Betreiber beabsichtigt. Um dies für mehrere Zielseiten abzubilden, bietet sich hier an, eine Liste an known-good Webseiten URLs anzulegen und vor dem Redirect die Ziel-URL gegen diese Liste abzugleichen. Ebenso möglich sind Weiterleitungen, die einen zusätzlichen durch ein geheim gealtenes Verfahren ermittelten Hashwert besitzen und prüfen und entsprechend nur bei Übereinstimmung weiterleiten.

>>> Lesen Sie auch: Open-Redirect im Beispiel Google