
553.3 Angriffsszenarien und Lösungen
Verbindung mit log_errors = /pfad/zur/logdatei können Fehler, die im
produktiven Betrieb auftreten, in eine Datei geloggt werden. Diese
Datei sollte in regelmäßigen Abständen überprüft und die Fehler berei-
nigt werden.
Eine selbst implementierte Fehlerbehandlung kann helfen, die
Übersicht über die Fehler und die Log-Dateien zu behalten und gegebe-
nenfalls E-Mails an den Entwickler zu verschicken. Dabei können
auch Fehlermeldungen ausgegeben werden, die aber nicht zu viele
Informationen enthalten sollten. Auf keinen Fall sollte man den Fehler
begehen, komplette SQL-Anfragen in den Fehlermeldungen auszuge-
ben. Eine Fehlermeldung mit einer Fehlernummer und einer kurzen
Beschreibung ist vollkommen ausreichend. Für die Entwicklung wird
empfohlen, das Error-Reporting in der
php.ini auf E_ALL zu setzen, um
alle eventuellen Fehler schon im Vorfeld zu erkennen und schließlich
zu beseitigen.
3.3.2 HTTP Response Splitting
Was ist HTTP Response
Splitting?
HTTP Response Splitting ist eine relativ neue Angriffsklasse. Sie ermög-
licht es, Webseiten mithilfe von gefälschten Anfragen zu verunstalten.
Dabei nimmt der Angreifer nicht direkt auf den Webserver Einfluss,
sondern manipuliert Systeme, die dem Webserver vorgeschaltet sind.
Ein Proxy-Server, ein Cache-Server, sogar der Browser selbst sind sol-
che vorgeschalteten Systeme. Des Weiteren sind Cross-Site-Scripting-
oder Phishing-Attacken über HTTP Response Splitting möglich.
Alle diese Angriffe funktionieren unabhängig davon, welcher
Browser oder welcher Webserver verwendet werden. Es muss nur eine
Schwachstelle in einer Applikation vorhanden sein. Diese Applikation
muss lediglich einen ungenügend geprüften Parameter mit den Sonder-
zeichen
\r (CR) und \n (LF) an die header()-Funktion von PHP weiter-
geben. CR und LF sind »Carriage Return« und »Line Feed«, die Son-
derzeichen für den Zeilenumbruch. Die URL-codierte Schreibweise ist
%0d für \r und %0a für \n.
/index.php?url=%0d%0a
Anhängen von \r\n an
einen URL-Parameter
In einen Angriff mittels HTTP Response Splitting sind immer drei Par-
teien mit eingebunden:
Grundlegende Techniken
■ Der Webserver, auf dem die angreifbare Applikation läuft.
■ Das Ziel, das mit dem Webserver im Auftrag des Angreifers
kommuniziert. Dies kann ein Proxy-Server, Cache-Server oder ein
Browser-Cache sein.
■ Der Angreifer. Dieser stößt den Angriff an.