2 Stimmen

XSS im IE - Umgehungsmöglichkeit?

Da IE 8 über einen XSS-Filter verfügt, gibt es wirklich keine Möglichkeit, einen XSS-Exploit mit diesem Browser auszunutzen? Ist zum Beispiel ein Cookie-Stealer keine Bedrohung mehr für meine Website?

(Wenn Sie denken, dass dies nicht korrekt ist und Sie einen möglichen Fehler im Filter haben, würde ich das gerne wissen)

4voto

orbital Punkte 139

Der XSS-Filter im IE8 kann sicher noch übertroffen werden. Es hängt von den XSS-Vuln auf der Seite ab, ob es möglich ist oder nicht. Man kann z.B. seltsame Kodierungen oder einen doppelten XSS-Angriff verwenden. Bearbeiten: Dies ist ein "in-the-wild"-Beispiel eines XSS-Angriffs, der den IE8-Filter passieren würde: XSS auf esrb.org

4voto

Vaibs Punkte 1848

Dh grundlegende XSS-Filter verarbeitet die ausgehende Anforderung durch erste Überprüfung, wo die Anforderung generiert wurde. Ich meine für eine reflektierende XSS die Anforderung kann von Angreifern System generiert werden, um bösartige Skript zu tun. Durch die Erweiterung sollte es keinen Sinn machen, Anfragen zu prüfen, die von der gleichen Domäne stammen, da dies eine Verschwendung von Ressourcen darstellen würde.

Allerdings macht IE eine falsche Annahme, XSS kann von überall her kommen und es für jeden reflektierende XSS-Schwachstelle kann aufgrund dieser falschen Annahme ausgenutzt werden. Der IE hat die HTTP-Header-Umleitungen "location:" sowie das meta refresh HTML-Tags. Es gibt jedoch auch andere Umleitungsmethoden, die für einen Angriff genutzt werden können.

Nehmen wir nun an, dass es in unserer Zielanwendung eine einfache XSS-Schwachstelle gibt, die in der Datei xss.php-Datei:

<?php
//xss.php
print $_GET['var'];
?>

Angenommen, in der Datei redir.php wurde ein Verstoß gegen OWASP a10 gefunden.

<?php
//redir.php
print “<script>”;
print “document.location='”.htmlspecialchars($_GET['redir'],ENT_QUOTES).”'”;
print “</script>”;
?>

Der Proof-of-Concept-Exploit für eine derartige Anwendung sieht folgendermaßen aus:

http://abc.com/redir.php?redir=http%3A%2F%2Fabc.com%2Fxss.php%3Fvar%3D%253Cscript
%253Ealert%2528%2Fxss%2F%2529%253C%2Fscript%253E

Der obige Link könnte von überall her stammen, auch von einem URL-Shrinking-Service. Die XSS-Nutzlast ist die GET-Variable "var". Dieser Teil des PoCs wurde doppelt url-kodiert. Dabei wird eine spitze Klammer ">" zu "%253E". Diese Kodierung täuscht sowohl den htmlspecialchars() auf dem Server sowie den Filter des IE. Diese verschlüsselte Nutzlast wird nicht durch den Aufruf von htmlspecialchars() und würde sich bei dessen Fehlen genauso verhalten.

1voto

EricLaw Punkte 55641

Es gibt verschiedene Arten von XSS-Angriffen; der IE XSS-Filter ist so konzipiert, dass er die häufigste Form von Reflected XSS-Angriffen blockiert. Siehe http://blogs.msdn.com/b/ie/archive/2008/07/02/ie8-security-part-iv-the-xss-filter.aspx für Hintergrundinformationen zur Funktionsweise des Filters.

Sie sollten auf jeden Fall weiterhin die Best Practices zur XSS-Prävention befolgen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X