Cross Site Scripting XSS verhindern – XSS Attacken erkärt (2022)

XSS Steffen Lippke Hacking Series

Was ist eigentlich Cross Site Scripting (XSS)?

Ich erkläre Dir, was Cross-Site-Scripting (XSS) ist und wie Du Dich davor absicherst.

Beginnen wir!

Was ist Cross Site Scripting?

Ein Angreifer fügt beim Cross Site Scripting (XSS) eine JavaScript-Datei in eine vertrauenswürdige Webseite ein, welche die Opfer aufrufen. Wenn die Opfer die Webseite aufrufen, infiziert das Script den Computer des Opfers automatisch.

  • Beispiel 1: Der Angreifer sendet dem Opfer via Chat den Inhalt eine JavaScript-Datei. Falls der Chat gegen Cross Site Scripting nicht geschützt ist, erhält der Empfänger nicht das Code-Snippet, sondern muss die Schadeffekte des Skripts ertragen. Malware kann verschiedene Effekte verursachen.
  • Beispiel 2: Wenn der Angreifer in ein ungeschütztes Forum seine JavaScript-Datei zu seinem Beitrag hinzufügt, dann führt sich der JavaScript-Code bei jedem Benutzer des Forums aus.

Einordnung und verwundbare Anwendungen

Das“Cross-Site-Scripting“ (XSS) ist ein webseitenübergreifendes Skripting wie z. B. Refleted XSS und DOM-Based.  Diese Art von Hacking kann man in die HTML-Injection einordnen. Oft finden die Angriffe mit der Nutzung von JavaScript statt.

XSS ist eine Gefahr für alle Webseiten, die in irendeiner Form Daten verarbeiten und nicht nur als reines statisches Dokument anzeigen. Dazu gehören PHP, Python oder JavaScript Web Apps.

Kriminelle haben mit JavaScript Zugriff auf Deine Kamera, Mikrofon, Dateisystem und GPS-Standort ansteuern. Die HTML 6 API ermöglicht diesen Zugriff mit JavaScript.

Das Motiv hinter XSS-Angriffe

Kriminelle nutzen XSS, um Black-Hat-Backlinks zu erstellen.

Ungeschützte Kommentarfelder und Formulare missbraucht das Script, um diese zu füllen und abzusenden. Der generierte Backlink hilft dem Angreifer dabei, seine Webseiten in Google höher ranken zu lassen.

Die Suchmaschine Google bewertet diese Technik der Backlink-Setzung als negativ und rankt die Webseite herunter. XSS eine Back-Hat-Methode, um Backlinks zu setzen.

Wie funktioniert XSS

XSS gibt es in drei verschiedenen Arten:

  • Reflektierend: Bei dem reflektierenden XSS sendet der Angreifer eine Mail zu dem Opfer und der Klick auf den Link startet den Schadcode automatisch. Diese Form ist eine Client-seitige Implementierung.
  • Persistent: Diese XSS-Form liegt auf der Seite des Servers. Der Kriminelle speichert das Script in eine SQL-Datenbank durch Formular- oder Kommentar-Felder.
  • Lokal / DOM-basiert: Für diese Methode muss der Hacker keine Einfügungen auf einer Webseite machen. Über einen gefälschten GET-Parameter in die URL fügt der Hacker JavaScript ein. Wenn der Kriminelle die URL kürzt, erkennt der Nutzer nicht, dass JavaScript im Spiel sein kann.
Lokales XSS ist auch verherrend
Lokales XSS ist verherrend

Verwundbare Kommentare und Formulare

Cross Site Scripting / XSS kann der Angreifer nicht nur in <script> Tags schreiben, sondern der Code führt sich in den folgenden Tags aus:

  • body: HTML-Haupttext
  • input: Eingabefelder
  • link: Ressourcen
  • href: Tags
  • script: JavaScript
  • img: Bilder

Mit dem Aufruf der Webseite laden die DOM-Objekte mit den verlinkten Ressourcen.

ATTACKE! – XSS auf Webseiten

Der Hacker kann beispielsweise in ein Kommentarfeld eines Blogs eine Script-Datei einfügen, die in der SQL-Tabelle der Webseite abgespeichert wird. Die erstellten Kommentare zeigt die Webseite unterhalb des Posts kompiliert an.

Kommentarfelder sind ein guter Input für Cross Site Scripting Beispiel + XSS Tutorial
Kommentarfelder sind einInput für Cross Site Scripting Beispiel + XSS Tutorial

Im Browser des Seitenbesuchers führt sich das Schad-JavaScript aus und kann aktiv werden.

Und WordPress ist aber schon schlauer:

XSS landet im WordPress Spam
XSS landet im WordPress Spam
Wordpress ist schlau und erkennt die Script Tags
WordPress ist schlau und erkennt die Script Tags

Sicherung: PHP- und Encoding-Firewall gegen XSS

Wenn der Browser-Nutzer sich gegen XSS schützen möchte, müsste er JavaScript und alle Flash-Sprachen standardmäßig deaktivieren. Diese Strategie schützt 100 % vor XSS-Angriffen.

Aber:

Im Web 3.0 sind Cookies, Sessions und Logs eine Selbstverständlichkeit. Der Nutzer müsste bei Deaktivierung von JavaScript auf vieles verzichten: Weder in Amazon kann der vorsichtige Nutzer etwas kaufen, noch kann er auf Netflix eine Serie schauen. Viele Webseiten zeigen sich nicht mehr ohne JavaScript an.

Single Page Applications basieren auf JavaScript. Diese Sprache ist eine der beliebtesten überhaupt im Web, weil die meisten Programmierer JavaScript programmieren können.

Das No-Script Plugin zwingt Firefox dazu, allen JavaScript-Codes zu ignorieren.

Bei XSS Attacken sind nicht die Nutzer in der Pflicht, sondern die Webseitenbetreiber. Sie müssen dafür Sorge tragen, dass die Kriminellen nicht in ihre Eingabefelder und Uplodas JavaScript einbetten können.

Um spammende Bots von Beginn an auszuschließen, solltest Du ein PHP-generiertes geheimes Feld Deinen HTML-Formularen hinzufügen. Die Bots sind so programmiert, dass Sie für ein bekanntes Standard-Plugin wie Contact-Form 7 alle Felder automatisch füllen und absenden. Enthält das Formular spezielle und unbekannte Felder, dann scheitern die meisten Bots.

Extra-Sicherheit: Bollwerk gegen XSS

Um XSS zu verhindern, sollte der Webprogrammierer alle PHP-Skripte überprüfen, ob …

  • … die Eingabe ungewöhnlich lange ist.
  • … JavaScript typische Syntax erscheint.
  • … die Eingabe URLs beinhaltet.
  • … ein Skrpt eine externe Web-Ressource lädt.

PHP stellt einige Funktionen zu Verfügung, die vermeiden, dass Schadcode in Deine Datenbanken gerät. Mit PHP kannst Du einfach mit strip_tags() alle Tags löschen. Alle HTML-Sonderzeichen wandelt die PHP-Funktion htmlentities() um in einen UTF-8 Texte, der als gedruckten Code im Browser erscheint.

htmlspecialchars($gefaerlicherString, ENT_QUOTES, 'UTF-8');

oder

filter_input($unsecureStuff, 'input', FILTER_SANITIZE_SPECIAL_CHARS)

Außerdem kannst Du nutzen:

Credits

Icons made by Gregor Cresnar from www.flaticon.com is licensed by CC 3.0 BY – Icons made by dDara from www.flaticon.com is licensed by CC 3.0 BY – Icons made by Icomoon from www.flaticon.com is licensed by CC 3.0 BY -Icons made by Those Icons from www.flaticon.com is licensed by CC 3.0 BY – Icons made by Freepik from www.flaticon.com is licensed by CC 3.0 BY – Icons made by srip from www.flaticon.com is licensed by CC 3.0 BY


Danke fürs Lesen! Erhalte weitere Tutorials in meinem kostenlosen Newsletter.
Jeden Monat teile ich mit Dir 4 neue praxisnahe Tutorials.
Trage Deine Mail zum kostenlosen Empfang des Newsletters* ein.




Quellenangabe Bilder: Icons und SVG-Grafiken im Titelbild von Microsoft PowerPoint 2019, frei verfügbar nach EULA
*) Mit dem Abonnement des Newsletters erklären Sie sich mit der Analyse des Newsletters durch individuelle Messung, Speicherung und Analyse von Öffnungsraten und der Klickraten in Profilen zu Zwecken der Gestaltung künftig besserer Newsletter einverstanden. Sie können die Einwilligung in den Empfang des Newsletters und die Messung mit Wirkung für die Zukunft widerrufen. Mehr in der Datenschutzerklärung.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.


Jeden Monat teile ich mit den Mitgliedern
4 neue praxisnahe ausführliche Tutorials (je 1000+ Wörter).


Trage Deine Mail, damit Du
Deine Coding + Hacking Skills erweitern kannst!

Die Website nutzt nur technisch notwendige Cookies.