Freitag, 9. Januar 2009 |
Bisher ging es bei der Suche nach Cross-Site-Scripting-Schwachstellen im Wesentlichen um reflektiertes Cross-Site Scripting. Diese Schwachstellen kann man recht einfach erkennen, da ein eingegebenes Testmuster sofort in der ausgegebenen Seite erscheint. Schwierig wird das bei persistenten Schwachstellen: Dort wird der eingeschleuste Schadcode bzw. das eingeschleuste Testmuster auf dem Server gespeichert und erst später, eventuell in einem ganz anderen Zusammenhang, an die Benutzer ausgegeben. Ab dieser Folge erfahren Sie, wie Sie solche Schwachstellen in Ihrer Webanwendung finden.
Die folgenden drei Fälle sind typische Beispiele für persistentes XSS. Der Einfachheit halber wird im Folgenden nur noch das Testmuster erwähnt, Entsprechendes gilt dann immer auch für den vom Angreifer eingeschleusten Schadcode.
N E U ! Security
aktuell
Täglich aktuelle Security-Infos!
Wie bereits bei der Suche nach reflektierten XSS-Schwachstellen in About Security #158 und #159 beschrieben, wird für jeden Parameter ein Testmuster eingegeben. Doch statt nur die jeweils auf die Eingabe folgende Seite nach dem Testmuster zu durchsuchen, muss nun die gesamte Webanwendung durchsucht werden. Dabei kann es durchaus vorkommen, dass eine einmal gemachte Eingabe auf sehr vielen Seiten ausgegeben wird. Besonders häufig wird das z.B. bei Benutzernamen vorkommen: Einmal bei der Registrierung angegeben, erscheint der Name danach z.B. auf jeder personalisierten Seite der Webanwendung, in Benutzerlisten, bei den Kontakten anderer Benutzer, in Beiträgen des Benutzers in Foren usw. – und das unter Umständen in verschieden Varianten, je nach angewandtem Filter. Entsprechend muss jedes Auftreten des Testmusters getrennt auf die Möglichkeit von XSS untersucht werden.
Außer den normalen Seiten der Webanwendung müssen auch die des Administrationsbereichs auf das Auftauchen des Testmusters geprüft werden. Wie schon bei den Beispielen erwähnt, sind solche Fälle für den Angreifer besonders interessant, da er dabei seinen Schadcode mit höheren Benutzerrechten ausführen lassen kann. Ein etwas untypisches Beispiel dafür ist eine XSS-Schwachstelle in vBulletin: Klickt ein Administrator einen präparierten Link an, kann sogar PHP-Code auf den Server eingeschleust werden.
Die weiteren Schritten zum Finden persistenter XSS-Schwachstellen erfahren Sie in der nächsten Folge.
Wenn Sie Fragen oder Themenvorschläge haben, können Sie diese gerne an die angegebene E-Mail-Adresse senden oder im Security-Forum einbringen!
About Security – Übersicht zum aktuellen Thema "Schwachstellensuche – III. Angriffe über vom Benutzer gelieferte Daten: XSS"