30.12.2013 Aufrufe

Uberblick Websecurity - Albert-Ludwigs-Universität Freiburg

Uberblick Websecurity - Albert-Ludwigs-Universität Freiburg

Uberblick Websecurity - Albert-Ludwigs-Universität Freiburg

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

6 Jennifer Nist<br />

Abbildung 2. Beispiel einer persistenten XSS-Schwachstelle:<br />

[11]<br />

Dom-basiert: DOM steht für Document Object Model und ist eine Schnittstelle zur browserunabhängigen<br />

Interpretation von HTML- und XML-Daten. Diese erfolgt benutzerseitig durch den<br />

Webbrowser. Der DOM-basierte XSS-Angriff nutzt, im Gegensatz zu den beiden anderen XSS-<br />

Angriffen, welche sich auf die serverseitige Erzeugung von dynamischen Webseiten stützten, die<br />

benutzerseitige Interpretation von Benutzereingaben.<br />

Beispiel<br />

Ein Benutzer macht eine Eingabe in eine Webanwendung. Diese Eingabe wird benutzerseitig durch<br />

eine Skriptsprache, wie etwa JavaScript, aus der URL als Argument ausgelesen:<br />

http://beispiel.de/datei.html?arg=Argument<br />

Dieses Argument wird in das betreffende HTML-Dokument eingefügt. Wenn dies ungeprüft geschieht,<br />

so kann die aufrufende URL manipuliert und an potentielle Opfer als harmloser Link<br />

verschickt werden.<br />

http://beispiel.de/datei.html?arg=alert(“XSS“)<br />

Wie kann man sich vor diesem Angriff schützen?<br />

Grundsätzlich sind Benutzereingaben nie vertrauenswürdig. Daher sollte jede Eingabe serverseitig<br />

geprüft werden. Dabei ist es meistens von Vorteil Whitelist zu benutzen. Bei dieser Methode werden<br />

nur solche Eingaben zugelassen, die auf der Liste stehen. Eine andere Methode ist die eine Blacklist<br />

zu führen. Dabei werden, im Gegensatz zu der Whitelist, die Eingaben die auf der Liste stehen<br />

nicht zugelassen. Eine Blacklist ist sinnvoller, wenn die Anzahl der erlaubten Eingaben zu hoch ist<br />

um sie auf eine Liste einzutragen. Jedoch sind Whitelists theoretisch die sicherere Wahl, da ständig<br />

neuere und komplexere Angriffsmethoden entwickelt werden, die zuvor noch nicht absehbar waren.<br />

Möchte der Benutzer nun ein Code-Beispiel in das Gästebuch schreiben, müssen Metazeichen als<br />

solche maskiert (escaped) und damit als normale Zeichen markiert werden. Bei der Maskierung<br />

wird dem Metazeichen ein bestimmtes Zeichen voran gestellt oder es komplett ersetzt, damit der<br />

Interpreter dies als eine Zeichenrepräsentation erkennt und nicht als Metazeichen interpretiert.<br />

Beispielsweise ersetzt man beim escapen von HTML-Code das Metazeichen ”<br />

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!