V. 8.7 (27.03.2012)

Infos

Download

Sicher programmieren

Daten

Beispielcode

Schnellsuche

Sicher programmieren - Expression

1. Die Abschnitte

2. Ogottogott

Bei diesem Hack handelt es sich um eine Mischung aus CSS- und JavaScript, der nur im Internet Explorer 6 und 7 funktioniert.

3. Expression

Offenbar war man sich bei Winzigweich darüber im Klaren, dass die CSS-Unterstützung dieser beiden Browser ziemlich mies ist. Aber anstatt das eigentliche Problem zu beheben, haben sie eine Möglichkeit eingebaut, die Angreifern Tor und Tür öffnet.

Denn nun kann man mittels der Microsoft-eigenen Anweisung expression JavaScript-Code in CSS-Anweisungen unterbringen, um die mangelhafte CSS-Untersutzüng zu kompensieren. Um das zu demonstrieren, greifen wir einfach auf die Daten aus dem Beispiel JavaScript-Hacks zurück.

4. Der Hack

Anstelle von JavaScript-Code geben wir einfach eine CSS-Anweisung in die Textarea ein.


<style type="text/css">
td 
{
  
height:expression(alert("Hallo"));
}
</
style>

Die Auswirkungen

... sind im IE in den besagten Versionen 6 und 7 gravierend. Da wir den Eintrag einfach ungefragt in die Datenbank kloppen und anschließend genau so schludrig auslesen, wird der JavaScript-Code innerhalb der expression-Anweisung ausgeführt. Et voilà, es knallt.

5. Lösungsmöglichkeit

Neben den schon beschriebenen Möglichkeiten unter dem Punkt JavaScript-Hacks kann man entsprechende expression-Anweisungen über reguläre Ausdrücke herausfiltern. Es gibt allerdings bessere Möglichkeiten. So kann man beispielweise SafeHTML einsetzen. Damit ist möglich, ganz gezielt bestimmte Eingaben zu filtern. Und das läuft auch noch unter PHP4.