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.

Was passiert auf dem Server?

Die example.php gibt nach dem Aufruf das aus, was der URL über den GET-Parameter übergeben wird. Eine mögliche GET-Übergabe des Strings „Search-Security“ würde wie folgt geschehen:

http://localhost/example.php?string=Search-Security

Wird diese URL mit Enter aufgerufen, so gibt sie den Text „Search-Security“ aus. Als nächstes übergeben wir nun Java-Skriptcode anstelle eines einfachen Text-Strings:

http://localhost/example.php?string=alert(ALARM)

Erscheint beim Aufruf dieser URL ein Popup mit dem Text „ALARM“, dann ist die PHP-Seite anfällig für eine XSS-Attacke.

Wie lässt sich diese XSS-Lücke beseitigen?

Eine Möglichkeit, die vorher beschriebene XSS-Lücke zu beseitigen, basiert auf der PHP-Funktion htmlspecialchars(). Diese Funktion wandelt Sonderzeichen in HTML-Codes um. Wendet man diese Funktion auf das vorherige Sourcecode-Beispiel an, so würde das Ergebnis wie folgt aussehen:

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

Ein Aufruf dieser optimierten PHP-Seite mit einem Java-Skriptcode, der per GET-Parameter übergeben wird, lässt einen möglichen XSS-Angriff ins Leere laufen: Der Aufruf von http://localhost/example.php?string=alert(ALARM) würde alert(ALARM) als String ausgeben, und den darin enthaltenen Java-Skriptcode nicht ausführen.

Inhalt

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? Kontaktieren Sie uns über: support.vogel.de/ (ID: 2049815 / Mobile- und Web-Apps)