Angriffe per Manipulation der URL

Wenn Sie eine eigene Webseite haben, müssen Sie mit Angriffen auf Ihre URL rechnen. Wenn Sie sie nicht schützen, können Hacker relativ einfach Zugang zu Administrator- oder anderen geschützten Bereichen erhalten, nur durch Manipulationen an Ihrer Adresse.

Grundlegendes zu URLs

Die URL (Uniform Resource Locator) einer Web-Anwendung ist der Vektor, mit dem die gefragte Quelle angezeigt werden kann. Es handelt sich um eine Kette von druckbaren ASCII-Zeichen, die aus fünf Teilen besteht.

Name des Protokolls: Das ist sozusagen die Sprache, die verwendet wird, um im Netzwerk zu kommunizieren. Das am häufigsten eingesetzte Protokoll ist das HTTP-Protokoll (HyperText Transfer Protocol), welches den Austausch von Webseitem im Format HTML ermöglicht. Es können aber auch viele andere Protokolle verwendet werden (zum Beispiel FTP, News, Mailto usw.)

ID und Passwort: Die Login-Daten ermöglichen es, die Zugangsparameter zu einem geschütztem Server einzugeben. Dies ist allerdings nicht empfehlenswert, da dass Passwort so klar ersichtlich in der URL steht.

Name des Servers: Es handelt sich um den Domainnamen des Computers, auf dem die gewünschte Quelle liegt. Es ist möglich, die IP-Adresse des Servers zu verwenden.

Nummer des Ports: Dies ist eine Nummer, die einem Dienst zugeteilt ist und den Server wissen lässt, welche Art von Ressource verlangt wird. Der Port, der dem Protokoll standardmäßig zugeteilt ist, ist Port 80. Wenn der Webservice des Servers Port 80 zugeteilt ist, kann man die Portnummer nach Wunsch zuordnen.

Zugangspfad zur Ressource: Dieser letzte Teil erlaubt es dem Server herauszufinden, wo die Ressource genau liegt, also das Verzeichnis und den Dateinamen der gerfagten Ressource.

Eine URL hat die folgende Struktur:

Protokoll Passwort (freiwillig) Name des Servers Port
(freiwillig, wenn 80)
Pfad
http:// user:password@ de.kioskea.net :80 /glossair/glossair.php3

Die URL kann dazu dienen, Parameter an den Server zu übermitteln, indem nach den Dateinamen ein Fragezeichen gestellt wird, gefolgt von Daten im ASCII-Format. Eine URL ist dann eine Zeichenkette im folgenden Format:

http://de.kioskea.net/forum/index.php3?cat=1&page=2

Manipulation einer URL

Indem ein Hacker bestimmte Teile der URL verändert, kann er einen Server dazu bringen, Seiten anzuzeigen, auf die er keine Zugriffsrechte hat.

Bei dynamischen Webseiten werden Parameter meist in folgender Form über die URL ausgegeben :

http://opfer/forum/index.php3?cat=2

Die Daten, die in der URL vorhanden sind, werden automatisch von der Seite ausgegeben und beim normalen Navigieren klickt ein User nur auf Links, die auf der Webseite liegen. Wenn ein User den Parameter aber manuell verändert, kann er verschiedene Werte ausprobieren. Zum Beispiel:

http://opfer/forum/index.php3?cat=6

Wenn der Entwickler nicht mit einer solchen Situation gerechnet hat, kann der Hacker möglicherweise Zugang zu einem geschützen Bereich erhalten.

Außerdem kann der Hacker die Webseite dazu bringen, auf eine unerwartete Situation zu reagieren. Zum Beispiel:

http://opfer/forum/index.php3?cat=***********

Im obigen Fall ist es möglich, dass die Webseite einen nicht vorgesehenen Zustand einnimmt und über eine Fehlermeldung Informationen preisgibt, wenn der Entwickler nicht vorgesehen hat, dass die Daten nicht aus Zahlen bestehen.

Trial and Error

Ein Hacker könnte auf gut Glück verschiedene Verzeichnisse und Erweiterungen ausprobieren, um wichtige Informationen zu finden. Hier sind einige klassische Beispiele.

Suche nach Verzeichnissen, die Admin-Rechte über die Seite verleihen:

http://opfer/admin/
http://opfer/admin.cgi

Suche nach einem Script, das Informationen über das fremde System preisgibt:

http://opfer/phpinfo.php3

Suche nach Sicherungskopien. Die Erweiterung .bak wird oft gebraucht und wird nicht standardmäßig von Servern übersetzt, was dazu führen kann, dass ein Sicherheits-Script angezeigt wird:

http://opfer/index.php3.bak

Suche von versteckten Dateien auf dem fremden System. Bei UNIX-Systemen kann es vorkommen, dass vom System geschaffene Dateien über das Internet zugänglich sind, wenn das Stammverzeichnis der Webseite dem Verzeichnis eines Users entspricht:

http://opfer/.bash_history
http://opfer/.htaccess

Directory Traversal

Angriffe über Directoy Traversal (auch path traversal oder forceful browsing) bestehen darin, die Struktur des Pfads in der URL zu verändern, um den Server dazu zu bringen, Bereiche der Seite anzuzeigen, für die man keine Zugriffsrechte hat.

Ein klassischer Fall wäre, dass der User gezwungen ist, progressiv den Pfad hinaufzuverfolgen, vor allem wenn die Ressource nicht zugänglich ist. Zum Beispiel:

http://opfer/base/test/ascii.php3
http://opfer/base/test/
http://opfer/base/

Bei anfälligen Servern, kann man den Pfad einfach durch mehrere solcher Ketten zurückverfolgen ../:

http://opfer/../../../../verzeichnis/datei

Bei fortgeschritteneren Angriffe werden bestimmte Zeichen codiert:

entweder durch URL Codierung

http://opfer/..%2F..%2F..%2Fverzeichnis/datei

oder durch Unicode-Notation

http://opfer/..%u2216..%u2216verzeichnis/datei

Viele dynamische Seiten geben den Namen der anzuzeigenden Seiten in einer Form aus, die der folgenden ähnlich ist:

http://opfer/cgi-bin/script.cgi?url=index.htm

Sofern keine Kontrolle durchgeführt wird, kann ein Hacker die URL manuell verändern, um Zugang zu einer Ressource der Seite zu fordern, zu der er keinen direkten Zugang hat. Zum Beispiel:

http://opfer/cgi-bin/script.cgi?url=script.cgi

Gegenmaßnahmen

Um einen Server vor Angriffen per URL-Manipulation zu schützen, ist es nötig, über Schwachstellen auf dem Laufenden zu bleiben und regelmäßig die Software-Patches herunterzuladen, die für den Server zur Verfügung gestellt werden.

Außerdem kann man durch eine genaue Konfiguration des Servers verhindern, dass ein User auf Seiten navigiert, auf die er keinen Zugriff haben sollte. Der Web-Server sollte also entsprechend der folgenden Grundregeln konfiguriert werden:

verhindern, dass auf Seiten navigiert wird, die unter dem Rootverzeichnis der Webseite liegen
(Mechanismus des chroot);

Anzeige von Dateien verhindern, die in einem Verzeichnis liegen, das keine Index-Datei hat (Directory Browsing);

Löschen von Verzeichnissen und nicht benötigten Dateien (auch versteckte Dateien);

sicherstellen, dass der Server den Zugang zu Verzeichnissen mit heiklen Datein schützt;

überflüssige Konfigurationsoptionen entfernen;

sicherstellen, dass der Server dynamische Seiten korrekt interpretiert, darunter auch Sicherheitsdateien (.bak) ;

überflüssige Script Interpreter löschen;

verhindern, dass Seiten, die über HTTPS zugänglich sind, im HTTP-Modus angezeigt werden.

Foto: © Natalia Lukiyanova - 123RF.com

Unsere Inhalte werden in Zusammenarbeit mit IT-Experten erstellt, unter der Leitung von Jean-François Pillou, Gründer von CCM.net. CCM ist eine führende internationale Technologie-Webseite und in elf Sprachen verfügbar.
Das Dokument mit dem Titel « Angriffe per Manipulation der URL » wird auf CCM (de.ccm.net) unter den Bedingungen der Creative Commons-Lizenz zur Verfügung gestellt. Unter Berücksichtigung der Lizenzvereinbarungen dürfen Sie das Dokument verwenden, verändern und kopieren, wenn Sie dabei CCM deutlich als Urheber kennzeichnen.
Treten Sie der Community bei