Schlagzeilen

Methoden zur Website Infiltrierung - Cross-Site-Scripting

Drucken
Benutzerbewertung: / 2
SchwachPerfekt 
Beitragsseiten
Methoden zur Website Infiltrierung
sql-injection
remote-file-inclusion
cross-site-scripting
Alle Seiten

Cross-Site-Scripting

Cross-Site Scripting (auch als XSS bezeichnet) ist eine der derzeitig weitest verbreiteten Schwachstellen in Web-Anwendungen.
Die grundlegende Idee hinter XSS ist die Annahme, daß die Eingabe des Nutzers nicht korrekt gefiltert und überprüft wird.
Das gefährliche an XSS ist die irrige Annahme, das keine wichtigen Informationen auf diese Art und Weise gestohlen werden können:
Oftmals werden sensitive Inhalte wie Zugangsdaten oder persönliche und finanzielle Informationen in Cookies abgelegt, im Körper der Webseite selbst auftauchen oder ein Bestandteil der URL sein.
In all diesen Situationen kann die Information vom Angreifer gestohlen werden.
Grundsätzlich ist jede dynamisch generierte (der eigentliche Inhalt wird erst im Moment der Anforderung per Script generiert und als html ausgegeben) Website für XSS gefährdet, die Nutzereingaben nicht oder nur ungenügend filtert.
Verhindert werden kann XSS, indem das verwendete Script die Eingaben des Nutzers entsprechend filtert.

Methoden Code einzubetten
Die verwundbare Webseite direkt mit purem Skript-Code zu versorgen ist nur eine aus vielen Möglichkeiten, weitere Möglichkeiten sind, den Code in Links oder MouseOver-Effekte einzubetten.
Indem man die Webseite Skript-Code aus einer Datei einbauen lässt, erhält man die Möglichkeit, Größenbeschränkungen zu umgehen. Weiterhin erscheint der Code nicht direkt im HTML-Code und wird dadurch schwerer zurückverfolgbar.
Mitunter ist es möglich, JavaScript-Code innerhalb eines Image-Tags unterzubringen. Diese Schwachstelle kann in Fällen missbraucht werden, in denen die angegriffene Webseite zwar die Eingabe eines Nutzers korrekt filtert aber ein anderes Formular nutzt, um dem Nutzer zu erlauben, Bilder ohne Filterung in den Text einzubauen.
Sollte es nicht möglich sein einfache und doppelte Anführungszeichen gleichzeitig zu verwenden, besteht die Möglichkeit, Anführungszeichen innerhalb des JavaScript-Codes mit ihren entsprechenden Escapesequenzen zu ersetzen.
Browser, die auf der Gecko Rendering Engine aufbauen, wie z.B. Mozilla Firefox, werden oftmals Codeblöcke
ausführen, die keine schließenden Tags enthalten, da diese Engine automatische Schließungen vornimmt:
Codebeispiel: <a href="javascript:alert('vulnerable'); <
Das obige Beispiel schafft einen Link , welcher von einem < repräsentiert wird und beim Anklicken Code ausführt. Dies kann sehr hilfreich sein, wenn die Injektion innerhalb eines anderen Tags stattfindet, z.B. innerhalb eines iframe: Codebeispiel: <iframe src="javascript:alert('vulnerable');"></iframe>
Natürlich kann Script-Code auch direkt in einen Iframe injiziert werden.
XSS bietet jedoch wesentlich mehr Optionen als das simple Stehlen von Cookies:


  • Fehlinformation
    Die document.write() Funktion hat großes Potential, Fehlinformationen zu platzieren.
    Stelle Dir vor, eine große Nachrichtenseite sei anfällig für XSS. Ein Angreifer könnte jetzt eine URL erstellen, welche einen Artikel über nukleare Angriffe irgendwo in der Welt in die Seite einbaut und diese URL über E-Mails und Foren verbreiten. Die Nachricht selbst wird durch die Webseite Glaubwürdigkeit
    erhalten und viele werden ihrem Inhalt glauben.
  • Verunstaltung
    Beispielsweise könnte ein Bild auf der Webseite platziert werden oder der Browser des Nutzers zu einer anderen Seite weitergeleitet werden.
    Nutzer überwachen
    Ein cleverer Angreifer könnte Code erstellen, welcher jeden Link, auf den ein Nutzer klickt, zusammen mit der Zeit des Klicks an einen anderen Server sendet. Dieser Mechanismus an sich ist von Tools zur Erhebung von Website-Statistiken bekannt.
  • Generieren von Bandbreite
    Nehmen wir einmal mehr die große Nachrichtenseite als Beispiel. Sie wird höchstwahrscheinlich täglich mehrere Tausend Besucher haben.
    Wenn ein Angreifer Code injiziert, der bei jeder Ausführung die größte verfügbare Datei vom Server eines Opfers lädt, generiert dies massive Bandbreite, welche genug sein sollte, um jeden beliebigen kleinen und auch noch viele mittlere Server per DoS (Denyl of Service)außer Gefecht zu setzen.

Abwehrmaßnahmen
Es gibt im Großen und Ganzen zwei Ansätze, XSS-Attacken zu verhindern:
Entweder escapet man alle Sonderzeichen, oder man nutzt umfassende Listen und reguläre Ausdrücke, um gefährliche Tags zu entfernen. Beide Methoden haben sowohl Vorteile als auch Nachteile.
Alle Sonderzeichen zu escapen ist der einfachste und sicherste Weg mit XSS umzugehen. Der große Nachteil ist jedoch, dass alle Sonderzeichen und somit auch alle Tags geblockt werden. Dies hält den Nutzer davon ab, jegliche HTML-artige Tags zum Formatieren seines Textes zu nutzen. Soll dies, z.B. in Foren, dem Nutzer dennoch erlaubt werden, muß ein Interface eingebaut werden, welches die Formatierung ohne Tags
vornimmt.
Listenbasiertes Filtern hingegen muß sich mit diesem Problem nicht auseinandersetzen, da es nicht
alle, sondern lediglich gefährliche Tags entfernt, für die reguläre Ausdrücke geschrieben wurden. Dies ist auch gleich der größte Nachteil dieses Ansatzes, denn von Zeit zu Zeit entstehen neue Angriffsmuster, die dann XSS-Attacken ermöglichen. Aus diesem Grunde müssen die regulären Ausdrücke der Filterlisten permanent auf dem neusten Stand gehalten werden. Ebenso macht diese Methode anfällig gegen Attacken, die noch nicht veröffentlicht wurden.



Kommentar schreiben

Werbung ist unerwünscht!
Bitte beachtet die Nutzungsbedingungen
Zu beachten sind auch diese Regeln.
Wer sich nicht an diese Regeln hält, bekommt das Schreibrecht für eine gewisse Zeit entzogen.
Dauerndes Verstoßen gegen die Regeln zieht eine Sperrung des Zugangs nach sich.


Sicherheitscode
Aktualisieren

Letzte Kommentare

  • Bitte Autovorschau und Leseber... Mehr...
    15.06.11 10:08
    Von Sabine
  • Ich bin gestern bei der Auftak... Mehr...
    05.06.10 10:00
    Von Auggie
  • Da wird ein ziemlich zutreffen... Mehr...
    22.05.10 09:56
    Von Auggie
  • Sowas nenn ich Beschränkung au... Mehr...
    21.05.10 14:51
    Von Auggie
  • Das Bild hat was Für mich pers... Mehr...
    21.05.10 01:22
    Von Auggie

Lesezeichen