Web Application Security in der Praxis, Teil 2

Schutz vor Cross-Site Scripting sowie Local and Remote File Inclusion

18.02.2011 | Autor / Redakteur: Martin Dombrowski / Stephan Augsten

GET-Parameterübergabe des Strings ‚<script>alert(„Alarm“)</script>‘. Es öffnet sich nun ein Popup mit der Meldung „Alarm“. Dies beweist die Existenz der XSS-Schwachstelle.
GET-Parameterübergabe des Strings ‚<script>alert(„Alarm“)</script>‘. Es öffnet sich nun ein Popup mit der Meldung „Alarm“. Dies beweist die Existenz der XSS-Schwachstelle.

Neben der SQL Injection haben sich Cross-Site Scripting, Cross-Site Request Forgery sowie Local und Remote File Inclusion bei Angriffen auf Webapplikationen bewährt. Der folgende Artikel beschreibt diese verheerenden Attacken und enthält detaillierte Beispiele, die sowohl ihre Funktionsweise als auch Hintergründe verdeutlichen sollen.

Wie der Name es schon vermuten lässt, handelt es sich bei Cross-Site Scripting (XSS) um den Umgang mit Skripten. Bei einer XSS-Attacke werden „fremde“ bzw. „gefährliche“ Skripte ausgeführt.

Das vermutlich bekannteste dieser Skripte liest das aktuelle Session Cookie eines angemeldeten Nutzers aus. Der Angreifer erlangt dadurch die Rechte der Benutzers und kann sich nun auf der Webseite bewegen. Diese Vorgehensweise wird Session Hijacking genannt.

Doch wie genau kann es zu einer XSS-Lücke kommen? Gehen wir zur Erläuterung von einer Webseite mit Suchfunktion aus. Nach der Suche nach einem beliebigen Begriff (zum Beispiel „Security-Insider“) wird der Anwender über das Suchergebnis informiert.

Die Ausgabe könnte zum Beispiel wie folgt lauten: „Ihre Suche nach Security-Insider ergab 3 Treffer“. Ist die Webseite nun so programmiert worden, dass sie die Ausgabe nicht nach Skriptbefehlen filtert, so werden alle Benutzereingaben interpretiert ausgegeben.

Um dies anschaulich zu erklären, folgt nun ein Sourcecode-Beispiel für eine PHP-Seite:

<html>
<head><title>XSS Beispiel</title></head>
<body>
<?php echo $_GET[‚string‘]; ?>
</body>
</html>

Dieser Sourcecode muss nun als example.php gespeichert werden. Er kann nun Lokal oder auf einem Webserver zum Testen ausgeführt werden.

Inhalt

Inhalt des Artikels:

Kommentare werden geladen....

Kommentar zu diesem Artikel

Der Kommentar wird durch einen Redakteur geprüft und in Kürze freigeschaltet.

Anonym mitdiskutieren oder einloggen Anmelden

Avatar
Zur Wahrung unserer Interessen speichern wir zusätzlich zu den o.g. Informationen die IP-Adresse. Dies dient ausschließlich dem Zweck, dass Sie als Urheber des Kommentars identifiziert werden können. Rechtliche Grundlage ist die Wahrung berechtigter Interessen gem. Art 6 Abs 1 lit. f) DSGVO.
  1. Avatar
    Avatar
    Bearbeitet von am
    Bearbeitet von am
    1. Avatar
      Avatar
      Bearbeitet von am
      Bearbeitet von am

Kommentare werden geladen....

Kommentar melden

Melden Sie diesen Kommentar, wenn dieser nicht den Richtlinien entspricht.

Kommentar Freigeben

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Freigabe entfernen

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Infos finden Sie unter www.mycontentfactory.de (ID: 2049815 / Mobile- und Web-Apps)